반응형
네임노드가 시작되는 과정을 정리하면서 네임노드의 동작들을 더 제대로 이해해보고자 합니다 :)
1. fsimage를 디스크에서 읽어 메모리에 로딩한다.
- fsimage는 dfs.namenode.name.dir 경로에 저장되어 있다.
- 이 파일을 읽어 메모리에 로딩한다.
2. edits log 중에 반영되지 않은 것을 찾아 반영한다.
- 아직 체크포인팅 안 된 edits log를 journal노드에서 읽어온다. 체크포인팅이 안 된 edits log에는 파일이름에 inprogress가 붙는다.
- edits log를 fsimage에 반영한다. (체크포인팅)
3. 네임노드의 포트(8020, 50070)가 열린다.
- 그럼 데이터노드와 네임노드가 통신하며 데이터노드가 등록된다.
- 데이터노드가 네임노드에게 블록리포트를 보내준다.
4. safemode에 진입한다.
- 블록복제가 일정수준을 만족하는지 확인될 때까지 safemode에 머문다.
- 이 때 데이터노드가 보내준 블록리포트 정보가 활용된다.
- 블록복제가 일정수준을 만족하면 자동으로 safemode에서 빠져나온다.
5. Startup 프로세스가 완료된다.
- 이제부터 Hadoop을 사용할 준비가 되었다.
- 네임노드는 주기적으로(약 1시간) 데이터노드에게 블록리포트를 받아 블록매핑정보(어떤 데이터노드에 어떤 블록이 있는지)를 만들어내서 메모리에 저장해놓는다.
- 또한 데이터노드가 하트비트를 주기적으로(약 3초) 보낸다. 네임노드는 이에 대한 응답을 보내면서 명령을 같이 보낸다. (블록 복제, 블록 삭제 등)
참고링크
반응형
'BigData 기술 > Hadoop' 카테고리의 다른 글
Hadoop 클러스터 구축 과정 (4) | 2021.04.01 |
---|---|
DataNode failed volumes 원인 및 해결법 (8) | 2021.01.07 |
[HDFS] Block Pool 개념 정리 (8) | 2021.01.04 |
[HDFS] 하둡 Balancer 과정 (1060) | 2020.07.20 |
[HDFS] Rack Awareness 란 (911) | 2020.07.15 |
댓글