하둡은 빅데이터의 핵심 소프트웨어다. 빅데이터의 에코시스템들은 대부분 하둡을 위해 존재하고 하둡에 의존해서 발전해 가고 있다 해도 과언이 아니다. 하둡은 크게 두 가지 기능이 있다. 첫 번째가 대용량 데이터를 분산 저장하는 것이고, 두 번째는 분산 저장된 데이터를 가공/분석 처리하는 기능이다.
뜻 자체에서 알 수 있듯, 하둡의 분산된 파일 시스템이다.
*Meta data: 블록에 대한 설명 Data | Content data: 실질적 데이터(블록)
handshake: 맨 처음 데이터 노드를 네임노드에 등록할 때 수행. DN가 통신이 가능한지 체크. 적합하면 고유 id 부여.
block report: 네임노드가 블록이 저장된 위치를 실제로 알 수 있는 이유. 각 DN들은 매 시간마다 NN에 블록 저장 위치와 현황 알려준다.
heartbeat: 각 DN는 3초에 한번씩 heartbeat를 네임 노드에게 보내며 자신이 잘 동작하고 있음을 확인. NN는 10분간 응당이 없는 노드는 고장으로 간주. 해당 노드에 저장되어 있는 블록을 다른 노드에 복사본으로 추가.
- NN는 가용성을 위해 주기적으로 checkpoint 생성. 만일 NN가 장애로 인해 재부팅시 -> 최신 checkpoint를 읽고 Journal을 순차적으로 실행시켜 복원시킴.
- NN는 HDFS의 취약점 -> 이유인즉슨 너무 많은 일을 하고, 혹여나 장애를 일으키면 클러스터 먹통 위험성이 크다. 그러므로 Active NN / Standby NN를 생성
- 하나의 DN에는 블록 replica를 하나만 저장
- 하나의 rack에는 블록 replica를 최대 두개까지만 저장
나중에 추가된 DN의 디스크 공간은 비어있는 반면, 오래 사용한 DN의 공간은 꽉 차게 됩니다. 이때 Balacer 모듈을 사용하여 DN들의 디스크 사용량을 비슷하게 옮겨주고 와중에 가용성을 위해 같은 node에 replica를 두지않고 같은 rack 새 replica를 저장하지 않도록 최적화까지 해줍니다.
실무로 배우는 빅데이터 기술 - 김강원/위키북스
https://yeomko.tistory.com/38?category=878347 - 갈아먹는 BigData[2] HDFS(하둡 분산 파일 시스템)