하둡 프레임워크 상에 존재하는 다양한 서브프로젝트들의 집합이라고 생각하면 된다.
하나하나 살펴보도록 하겠다.
ZOOKEEPER
분산 시스템 간의 정보 공유 및 상태 체크, 동기화를 처리한다.
이러한 역할을 하는 시스템을 코디네이션 서비스 시스템이라고 한다.
이를 많이 쓰는 이유는, 기능에 비해 시스템이 단순하기 때문이다.
분산 큐, 피어 그룹 대표 산출, 분산 락 등의 다양한 기능을 가지고 있다.
OOZIE
하둡의 워크플로우를 관리해준다.
맵리듀스 잡, 피그 잡등의 시작과 완료, 실행 중 에러등의 이벤트를 콜 백 할 수 있다.
AVRO
데이터 직력화에 쓰이는 프레임워크이다.
다양한 언어를 지원하며, 스키마를 보통 JSON 으로 작성 후 바이너리 형태로 인코딩한다.
TAJO
하둡 기반 DW(Data Warehouse) 시스템이다.
특정한 솔루션에 종속되지 않는다.
+ DW 란 사용자의 의사 결정에 도움을 주기 위해 기간시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터베이스를 말한다고 한다.
HIVE
자바 프로그래밍을 모르는 사용자도 빅데이터를 분석하고 처리할 수 있도록 도와주는 프레임 워크이다.
HiveQL이라는 자체 쿼리를 제공하며, 이는 실행될 때 맵리듀스 잡으로 변환되어 실행된다.
DW 로 하이브를 쓸 일이 생겨서,
좀 더 자세히 알아봤다.
하이브는 아파치 HDFS나 HBase와 같은
데이터 저장 시스템에 저장되어 있는 대용량 데이터 집합들을 분석한다.
쿼리를 빠르게 하기 위해 비트맵 인덱스를 포함하여 인덱스 기능도 제공한다.
HBASE
분산형 파일 시스템을 사용하는 컬럼기반 DB이다.
실시간 랜덤데이터 조회/수정이 가능하며 비동기적으로 수정할 수 있다.
RDBMS의 비확장성 비분산 등의 단점을 커버한다.
MAPREDUCE
Map 과 Reduce 단계로 나누어져 처리한다.
Map 단계는 흩어져 있는 데이터를 key 와 value 로 묶고,
Reduce 단계는 Map 단계의 key 를 중심으로 필터링 및 정렬한다.
이를 함수를 통해 구현하고 맵리듀스 잡을 통해 제어한다.
HDFS
하둡의 부사장인 아룬 머시가 하둡은 하둡 네트워크에 연결된 아무 기기에 데이터를 밀어넣는다고 표현했을 정도로
분산형 파일시스템은 대용량 파일을 블록 구조로 우겨넣는다.
그냥 대용량 파일을 분산저장하는 시스템이라고 이해하면 편할 것 같다.
참고
http://www.incodom.kr/hadoop_%EC%B4%9D%EC%A0%95%EB%A6%AC