어느 가을날의 전환점

HADOOP|Apache™ Hadoop™(아파치 하둡) 본문

Development

HADOOP|Apache™ Hadoop™(아파치 하둡)

어느가을빛 2011. 11. 16. 16:16
Apache의 Hadoop 프레임워크는 본질적으로 대용량 데이터 세트를 분석하기 위한 메커니즘이며, 이는 반드시 데이터 저장소에 수용하지 않아도 된다. Hadoop은 MapReduce의 거대한 데이터 분석 엔진을 요약하여 개발자들이 액세스하기에 더 쉽게 만든다. Hadoop은 무수한 노드로 확장하여 데이터 정렬과 관련된 활동 및 조정을 모두 처리할 수 있다.

하둡의 화두는 '분산' 입니다. 

하둡은 두가지 큰 요소의 결합입니다. '처리(계산)' 와 '저장' 입니다. 즉 '분산처리' 와 '분산저장' 이라고 보면 됩니다. 여러개의 저가형 컴퓨터를 마치 하나인것 처럼 묶어주는 기술이라고 보면 됩니다. (그래서 계산 능력과 저장 공간을 늘립니다)

분산저장

하둡 파일시스템(HDFS: Hadoop Distributed File System) 을 이용해서 파일을 적당한 블록 사이즈 (64MB)로 나눠서 각 노드 클러스터(각각의 개별 컴퓨터) 에 저장합니다. 또한 데이타 유실의 위험이나 사람들이 많이 접근할때 (Access) 할때의 부하처리를 위해서 각 블록의 복사본 (Replication)을 만들어 둡니다. 보통 복사본은 최소 3카피 정도입니다. 왜 이렇게 하냐면 고성능 서버에서 저장공간은 돈이 많이 들어가는 부분입니다. 그것을 저가형 저장소 여러개를 묶어서 마치 레이드 처럼 동작하게 하려는 목적으로 분산저장을 하는것입니다. 

분산처리

MapReduce 라는 프레임워크를 이용해서 계산합니다. 프레임워크라는 것이 중요합니다. 즉 분산처리를 위해서 프레임워크를 만들어 둔것입니다. 분산처리를 위해서 프레임워크에 맞추어서 코딩을 하고 하둡 시스템에서 그것을 실행하면 자동으로 분산처리를 해 줍니다. 
   
그 맵리듀스 (MapReduce) 라는 프레임 워크는 Map + Reduce 라는 두가지 형식으로 나누어 집니다. 개념은 간단합니다. Map 함수에서 데이타를 처리를 하고 Reduce 함수에서 원하는 결과값을 계산시킵니다. 

여러가지 설명이 있겠지만 정말 쉽게 설명을 하자면 하둡은 분산을 지원하기 위한 자바를 이용한 '가상 OS' 와 같은 개념으로 보면 가장 편리할 것입니다. (보통 OS 가 파일 시스템 과 잡 스케쥴러를 기반으로 구성됩니다)


Apache™ Hadoop™

Java development 2.0: Hadoop MapReduce로 대용량 데이터 분석

Hadoop Korean User Group

# 출처
[하둡] 하둡(Hadoop) 이란? - 매니져를 위한 하둡 1분 정리
http://crazia.tistory.com/entry/%ED%95%98%EB%91%A1-%ED%95%98%EB%91%A1Hadoop-%EC%9D%B4%EB%9E%80-%EB%A7%A4%EB%8B%88%EC%A0%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-%ED%95%98%EB%91%A1-1%EB%B6%84-%EC%A0%95%EB%A6%AC
Comments