HDFS는 하둡분산 파일시스템을 의미

그리고 데이터 유실에 대비하여 단 하나의 블록만 저장하지 않으며 모든 블록마다 두 개 이상의 복사본을 저장한다.그래야 어떤 컴퓨터가 다운되더라도 HDFS가 그 블록의 백업 복사본을 갖고 있는 다른 컴퓨터에서 정보를 불러올 수 있게 된다.

단일 노드가 다운되더라도 그 어떤 블록도 잃어버리지 않게 된다.

또한 분산된 서버간 주기적인 상태 체크를 하여, 데이터 처리를 위해 안정적으로 분산 서버(노드)가 작동하도록 관리한다(heart beat)

Untitled

Name Node

어느 블록이 어디에 있는지를 추적한다. 즉 이 노드에 큰 차트가 있고 거기에 주어진 파일의 이름과 HDFS 내의 가상 디렉터리 구조 등의

정보가 있으며 그 파일과 관련된 모든 블록과 해당 복사본들이 어떤 노드에 저장되어 있는지 기록되어 있는 것이다.

그리고 '편집 로그'(edit log)가 있는데 무엇이 생성되고, 어떤 게 수정되고 저장되는지 등의 변경사항이 기록된다.

또한 하둡에서 처리되는 파일 속성 정보나 파일 시스템 정보를 디스크가 아닌 메모리에서 직접 관리하는 역할도 한다.

이를 메타 데이터라고 말한다.

그렇다면 '왜 Name node가 하나밖에 없을까? Name node에 문제가 발생하면 어떻게 될까?

기본적으로 한 번에 하나의 이름 노드만 사용해야 한다. 아니면 블록의 위치에 관해 클라이언트 간에 혼선이 생길 수 있기 때문이다.

그런데 단일 name node만 사용하면 단일 실패 지점이 발생하게 되는데 이 문제를 해결할 몇 가지 방법이 있는 것이다.

가장 간단한 방법은 메타데이터를 계속 백업하는 것이다.

  1. 이름 노드가 편집 로그를 로컬 디스크와 NFS(네트워크 파일시스템)에 동시에 작성하도록 구성하는 것이다.이때 NFS는 다른 랙이나 데이터 센터의 '백업 데이터 저장소'와 연결돼 있다.이렇게 하면 그 Name node가 죽어도 NFS 백업에서 편집 로그라도 살릴 수 있다.하지만 그 백업 데이터를 다시 작성하는 데는 렉이 좀 걸리기 때문에 어느 정도 정보 손실이 있을 수도 있다.약간의 다운 타임이 있어도 괜찮다면 해당 방법이 가장 간단하다.