- Read
- Write
- 쓰기 실패 시 Ack Queue로부터 Data Queue로 다시 불러와 쓰기를 재시도
- 복사본 배치
- 서로 다른 랙에 복제본을 배치하면 중복성은 최대화되지만 대역폭 비용은 커짐
- Read와 Write에서 동일한 전략을 가지며, 네트워크 대역폭 사용 최소화를 위함
- 하둡의 기본 전략
- 첫 번째 복제본을 클라이언트와 같은 노드에 배치함
- 클라이언트가 클러스터 외부에 있으면 무작위로 노드(파일이 너무 많거나 바쁜 노드는 제외)를 선택함
- 두 번째 복제본은 첫 번째 노드와 다른 랙(무작위)의 노드에 배치됨
- 세 번째 복제본은 두 번째 노드와 같은 랙의 다른 노드에 배치됨
- 그 이상의 복제본은 클러스터에서 무작위로 선택하여 배치함
- 데이터 지역성 최적화
- 네트워크 대역폭을 사용하지 않도록 입력 데이터가 있는 HDFS 노드에서 Map Task를 실행하도록 하는 것
- 자원이 부족한 경우 블록 복제본이 저장된 다른 노드에서 Map Task 수행을 시도
- 다른 노드 역시 가용 자원 확보가 불가능한 경우 불가피하게 데이터 복제가 일어남
- Reducer는 일반적으로 모든 Mapper의 출력 결과를 입력으로 받기 때문에 데이터 지역성의 장점이 없음
- 일관성 모델
- 일단 파일을 생성하면 파일시스템의 Namespace의 목록에서 파일을 확인 가능
- 데이터가 한 Block 이상 기록되면 해당 Block의 내용을 볼 수 있음
- 쓰기 작업이 진행 중인 Block의 내용을 다른 Reader가 볼 수 없음
'Development > Hadoop' 카테고리의 다른 글
하둡 공부 - MapReduce 작동 방법 (0) | 2019.01.24 |
---|---|
하둡 공부 - Hadoop I/O (0) | 2019.01.24 |
하둡 공부 - YARN (0) | 2019.01.24 |
하둡 공부 - HDFS (0) | 2019.01.24 |
Hadoop 2.7.3 Fully-distributed Mode Setup (0) | 2017.02.01 |