
-
zookeeper
- 서버에 서비스 분배, 효율적 병렬처리
- 서버간 데이터 동기화 (데이터 파편화 방지)
- 운영서버 문제 발생시 다른 운영서버로 전환해 서비스 연속성 유지
- 분산환경 구성하는 서버의 환경설정 통합적으로 관리
-
Oozie
- 하둡 작업 관리하는 워크플로우 & 코디네이터 시스템
- 자바 서블릿 컨테이너에서 실행되는, 자바 웹 어플리에키션 서버
- 맵리듀스 작업 혹은 피그 작업 같은, 특화된 액션으로 구성된 워크플로우를 제어
-
HBase
- HDFS 기반의 컬럼 기반 데이터베이스
- 구글의 빅테이블(BigTable) 논문 기반으로 개발
- 실시간 랜덤 조회 및 업데이트가 가능
- 각 프로세스는 개인의 데이터를 비동기적으로 업데이트 가능
- 단, 맵리듀스는 일괄 처리 방식으로 수행
- 트위터, 야후, 어도비 같은 해외 업체에서 사용하고 있으며, 국내에서는 2012년 네이버가 모바일 메신저인 라인에 HBase를 적용한 시스템 아키텍쳐 발표
-
Pig
- 야후에서 개발됐으나 현재는 아파치 프로젝트 소속 프로젝트
- 복잡한 맵리듀스 프로그래밍을 대체할 피그 라틴 (Pig Latin) 이라는 자체 언어 제공
- 맵리듀스 API를 매우 단순화한 형태이고, SQL 과 유사한 형태로 설계
- SQL과 유사하기만 할 뿐, 기존 SQL 지식 활용은 어려움
-
Hive
- 하둡 기반의 데이터 웨어하우징용 솔루션
- 페이스북에서 개발했으며, 오픈소스로 공개되며 주목받은 기술
- SQL 과 매우 유사한 HiveQL 이라는 쿼리 언어 제공
- 자바를 모르는 데이터 분석가들도 쉽게 하둡 데이터를 분석할 수 있게 도와줌
- HiveQL은 내부적으로 맵리듀스 잡으로 변환되어 실행
-
Mahout
- 하둡 기반으로 데이터 마이닝 알고리즘을 구현한 오픈소스 프로젝트
- 현재 다양한 분석용 주요 알고리즘 지원
- 분류 (Classification)
- 클러스터링 (Clustering)
- 추천 및 협업 필터링 (Recommenders / Collaborative Filtering)
- 패턴 마이닝 (Pattern Mining)
- 회귀분석 (Regression)
- 차원축소 (Dimension Reduction)
- 진화 알고리즘 (Evolutionary Algorithms)
- Mahout 을 그대로 사용할 수도 있지만, 보통 비즈니스 환경에 최적화해서 사용
-
HCatalog
- 하둡으로 생성한 데이터를 위한 테이블 및 스토리지 관리 서비스
- HCatalog의 가장 큰 장점은, 하둡 에코시스템 간의 상호운용성 향상
- ex) HCatalog 이용시 Hive 에서 생성한 테이블이나 데이터 모델을, Pig 나 맵리듀스에서 손쉽게 이용 가능
- 이전에도 에코시스템 간의 데이터 모델 공유가 불가능한 것은 아니었으나, 상당한 백엔드 작업이 필요
- 현재는 하이브의 서브 프로젝트로 통합된 상태
-
Avro
- RPC (Remote Procedure Call) 와 데이터 직렬화를 지원하는 프레임워크
- json 을 이용해, 데이터 형식과 프로토콜을 정의하며, 작고 빠른 바이너리 포맷으로 데이터를 직렬화
-
Chukwa
- 분산 환경에서 생성되는 데이터를 HDFS 에 안정적으로 저장하는 플랫폼
- 분산된 각 서버에서 에이전트 (agent) 를 실행하고, 콜렉터 (collector) 가 에이전트로부터 데이터를 받아 HDFS 에 저장
- 컬렉터는 100개의 에이전트 당 하나씩 구동
- 데이터 중복 작업 등은 맵리듀스로 처리
- 야후에서 개발, 아파치 오픈소스 프로젝트로 공개
-
Flume
- Chukwa 처럼 분산된 서버에 에이전트가 설치되고, 에이전트로부터 데이터를 전달받는 컬렉터로 구성
- 차이점은 전체 데이터의 흐름을 관리하는 마스터 서버의 존재
- 마스터 서버의 존재로 인해 데이터를 어디서 수집하고, 어떤 방식으로 전송하고, 어디에 저장할지를 동적으로 변경 가능
- 클라우데라에서 개발, 아파치 오픈소스 프로젝트로 공개
-
Scribe
- 페이스북에서 개발한 데이터 수집 플랫폼
- Chukwa 와는 다르게 데이터를 중앙 집중 서버로 전송하는 방식
- 최종 데이터는 HDFS 외에 다양한 저장소를 활용 가능
- 설치와 구성이 쉽도록, 다양한 프로그램 언어를 지원
- HDFS 에 저장하기 위해서는 JNI (JAVA Native Interface) 를 이용해야 함
-
Scoop
- 대용량 데이터 전송 솔루션
- 2012/04 에 아파치 최상위 프로젝트로 승격
- Sqoop 은 HDFS, RDBMS, DW, NoSQL 등 다양한 저장소에 대용량 데이터를 신속하게 저장하는 방법을 제공
- 오라클, MS-SQL, DB2 등과 같은 상용 RDBMS 와 MySQL, PostgreSQL 과 같은 오픈소스 RDBMS 등을 지원
-
Hiho
- Sqoop 과 같은 대용량 데이터 전송 솔루션
- 현재 Github에 공개
- 하둡에서 데이터를 가져오기 위한 SQL 을 지정할 수 있으며, JDBC 인터페이스를 지원
- 현재는 오라클과 MySQL 의 데이터 전송만 지원
-
Spark
- 인메모리 기반의 데이터 처리 프레임워크
- 머신러닝과 대화형 질의에서 활용도 높음
- HDFS, HBase, Cassandra (NoSQL 의 일종) 와 호환
- SQL 처리, 스트리밍 데이터 처리에도 활용 가능
-
Impala
- 클라우데라에서 개발한 하둡 기반의 실시간 SQL 질의 시스템
- 맵리듀스를 사용하지 않고, 자체 개발한 엔진을 사용해 빠른 성능을 보임
- 임팔라 (Impala) 는 데이터 조회를 위한 인터페이스로 HiveQL 을 사용
- 수초 내에 SQL 질의 결과를 확인할 수 있으며, HBase 와도 연동 가능
-
Tajo
- 고려대학교 박사 과정 학생들이 주도해서 개발한 하둡 기반의 DW 시스템
- 2013년 아파치 재단의 인큐베이션 프로젝트로 선정
- 2014/04 최상위 프로젝트로 승격
- 데이터 저장소는 HDFS 를 사용하되, 표준 데이터베이스 질의 언어인 SQL 을 통해 실시간으로 데이터 조회 가능
- Hive 보다 1.5~10배 빠르며, 클라우데라의 ImpalA 와는 비슷한 속