하둡이란
대규모 분산 병렬 처리의 업계 표준인 맵리듀스 시스템과 분산 파일시스템인 HDFS를 핵심 구성요소로 가지는 플랫폼 기술.
여러 대의 컴퓨터를 마치 하나의 시스템인 것처럼 묶어 분산환경에서 빅데이터를 저장 및 처리 할 수 있도록 하는 자바 기반의 오픈소스 프레임워크
특징
1. 비공유분산아키텍처
- 여러대의 서버(제한이 없음)로 클러스터를 만듦
- 서버를 추가하면 연산기능과 저장 기능이 서버의 대수에 비례하여 증가
2. 고장감내성
- 저장되는 데이터가 3중복제, 데이터의 유실을 방지할 수 있음
- 장애 발생시 특정 태스크만 다른 서버에서 재실행 가능
3. 루씬의 서브프로젝트로 시작. 각종 개발자 커뮤니티에서 활발히 참여하며 크게 개선
4. 맵+리듀스 2개의 함수만 구현하며 동작
에코시스템
1. 워크플로관리
- Zookeeper : 모니터링 및 관리
- oozie : 하둡작업관리 워크플로우 및 코디네이터시스템
- azkaban
- airflow : 웹 ui기반 강력한 모니터링제공
2. 실시간, 대용량 SQL질의
- 아파치 드릴 : 드레멜의 아키텍쳐와 기능을 동일하게 구현한 오픈소스 버전 드레멜
- 아파치 스팅거 : 기존에 하이브코드를 최대한 이용하여 성능 개선
- 샤크 : 인메모리기반 DW시스템, 하이브와 호환
- 호크 : '피보탈'사 개발 플젝, 상용과 커뮤니케이션 2가지 버전
-프레스토 : 페북자체개발, 아파치 라이센스, DW하우징 엔진
- 타조 : "고대"플젝
- 임펠라 : "클라우데라사" 개발
- hive : sql 질의 기술을 이용하여 하둡에 저장된 데이터를 쉽게 처리, 분석해줌 (아파치 하이브 : 페이스북에서 개발한 웨어하우징 인프라, 맵리듀스의 모든기능 지원)
- pig : mapReduce 프로그래밍 대체할 pig latin 언어 제공. 코드공유 어려움등의 요구사항 개선 (야후에서 개발한 오픈소스)
- spark : 아파치 개발
3. 기계학습
- Mahout : 하둡을 기반으로 하여 데이터마이닝 알고리즘 구현한 오픈 소스 라이브러리
4. 비정형데이터 수집
-Chukwa : 분산환경에서 생성되는 데이터를 HDFS에 안정적으로 저장시키는 플랫폼
-scribe : 페이스북에서 개발된 데이터 수집 프랫폼, 중앙집중서버로 전송
-flume : 소스서버에 에이전트설치, 에이전트로 부터 데이터 전달받는 콜랙터로 구성
* 아파치 Flume-Ng, 페이스북 scribe, 아파치 chukw=> 로그 데이터 수집 시스템의 예
- kafka
5. 데이터연동
- sqoop : 하둡과 데이터베이스간의 데이터 연동 솔루션. 다양한 저장소에 대용량 데이터를 신속하게 전송할 수 있는 방법 제공
(import) RDBMS -> HDFS
(export) HDFS -> RDBMS
6. 분산 DB
- hbase : HDFS기반 컬럼 분산 DB. NoSQL (SQL은 지원하지 않는다)
7. 메타데이터관리
- Hcatalog : 하둡기반 테이블, 스토리지 관리
8. 데이터직렬화
- Avro : RPC과 데이터직렬화 지원 프레임워크
9. 실시간처리
- storm : 장애대응능력 뛰어남