(Hortonworks, Hadoop Ecosystem)
프로젝트 |
설명 |
Apache Avro |
언어 독립적 데이터 직렬화 |
Apache Parquet |
컬럼 기반 저장 포맷 |
Apache Flume |
이벤트 기반의 대용량 데이터를 하둡으로 수집 |
Apache Sqoop |
RDBMS로부터 데이터를 추출하고 하둡으로 보내 처리 |
Apache Pig |
대용량 데이터셋을 더 높은 추상 수준으로 처리 |
Apache Hive |
하둡 기반의 데이터 웨어하우징 프레임워크 |
Apache Crunch |
MapReduce 파이프라인을 작성하는 고수준 API |
Apache Spark |
대용량 데이터 처리를 위한 클러스터 컴퓨팅 프레임워크 |
Apache HBase |
HDFS를 위한 컬럼 기반 분산 데이터베이스 |
Apache Zookeeper |
분산 코디네이션 서비스 |
Apache Atlas |
메타데이터 통합 관리 |
Apache Falcon |
데이터 라이프 사이클 관리 프레임워크 |
Apache Solr |
데이터 검색 플랫폼 |
- 주키퍼
- 분산 코디네이션 서비스
- 주키퍼의 특징
- 단순하지만 제공하는 기능이 풍부하며, 고가용성을 제공함
- 분산 큐, 분산 락, 피어 그룹의 대표 선출 등
- 파일과 디렉터리를 통합한 znode라 불리는 노드를 제공함
- 루트(/) 노드를 시작으로 계층적인 네임스페이스를 형성함
- znode에 저장할 수 있는 데이터의 크기는 1MB이며, 데이터의 append 불가능
- 임시 znode: 프로그램이 종료되면 그룹에서 자동으로 제거됨
- 임시 znode는 자식 znode를 가질 수 없음
- 순차 znode: 단조 증가 카운터(A_1)가 덧붙여지며, 유일한 이름으로 관리됨
- 구현
- 실제 서비스에서 주키퍼는 고가용성을 위해 복제 모드(앙상블)로 수행됨
- 앙상블 내 과반수가 운영 중인 동안에만 서비스를 제공할 수 있음
- ex) 6대 중 3대가 장애 시 과반수가 안되어 서비스를 제공할 수 없음
- Zab 프로토콜 (Zookeeper Atomic Broadcast Protocol)
- 1단계: 대표 선출
- 대표라는 특별한 멤버를 선출하며, 나머지는 추종자가 됨
- zxid가 가장 높은 노드가 대표로 선정됨
- 2단계: 원자적 브로드캐스트
- 모든 쓰기 요청은 대표에게 전달되고, 대표는 추종자에게 업데이트를 브로드캐스트함
- 만약 대표 서버의 문제 시 남은 서버는 새로운 대표를 선출하며, 이 과정은 대략 200 ms로 성능 저하가 적음
- 모든 서버는 업데이트 사항을 디스크에 먼저 기록 후 메모리에 기록함
- 읽기는 모든 서버에 요청할 수 있고, 메모리에서 검색하여 매우 빠름
- 시간 유의사항
- 기본 설정값에 따른 세션 타임아웃은 4초 ~ 40초 사이임
- 낮은 세션 타임아웃일 때는 서버 컴퓨터 장애를 좀 더 빨리 탐지할 수 있지만, 네트워크가 바쁠 때는 패킷이 늦게 도착할 수 있으므로 부득이하게 세션이 만료될 수도 있음
- 주키퍼 앙상블의 크기가 늘어날 수록 세션 타임아웃도 늘어나야 함
- Watcher
- 주키퍼 상태 및 znode 변화를 통지함
- 락 서비스
- 순차 znode로 한순간에 오직 하나의 프로세스만 락을 소유함
- 락 획득 과정
- 임시 순차 znode를 락 znode 아래에 lock-이라는 이름으로 생성
- 락 znode의 자식을 얻고 Watcher를 설정함
- lock-번호가 락 znode의 자식 중 가장 낮은 번호면 락을 획득
- 집단 효과
- 하나의 락을 획득하기 위해 수천의 클라이언트가 시도하고 통지를 받음
- 이를 해소하기 위해 이전 순번의 락이 사라질 때만 통지를 받음
'Development > Hadoop' 카테고리의 다른 글
하둡 공부 - Yarn Scheduler (0) | 2019.01.24 |
---|---|
하둡 공부 - Apache Hadoop 3.0.0 (0) | 2019.01.24 |
하둡 공부 - 하둡 관리 (0) | 2019.01.24 |
하둡 공부 - 하둡 클러스터 설치 및 고려사항 (0) | 2019.01.24 |
하둡 공부 - 맵리듀스의 튜닝과 고급 기능 (0) | 2019.01.24 |