NameNode
주로 메모리와 i/o에 관련된일을 한다.
Nanenode는 복수로 구성되지 않는다.
다른 데몬의 경우 복수로 구성되기 때문에 실패시 재실행을
시킬수 있으나 Namenode의 경우 그럴 수 없다.
Namenode는 각 블럭이 어떤 Datanode에 위치하는지 클라이언트에게 알려준다.
클라이언트는 HDFS블록들에 대응되는 로컬 파일을 처리하기위해 Datanode 데몬과 통신한다.

Datanode
다른 Datanode와 통신함으로써 자기가 가지고 있는 블럭을 다른 Datanode에 복사
할 수 있다. 이렇게 함으로써 네트웍이 깨져서 접근인 안되어도 사용자는 파을을 계속
읽을 수 있게 된다.
Datanode는 이러한 이동상황 블럭의 이동 복사 계속해서 Namenode에 보고한다.

Secondary NameNode(SNN)
클러스터로 구성되 HDFS 상태를 모니터하는 보조적인 성격을 가진 데몬이다. 각 클러스터는 SNN을 가진다. SNN은 Namenode와 달리 실시간으로 발생하는 HDFS의 변경에 관한 어떤 정보도 기록하지 않는다. 대신 클러스터 설정 시 정의된 값을 가지고 주기적으로 HDFS 메타데이터의 스냅샷을 찍는다.
Namenode는 하둡 클러스터에 대해 단일 실패 지점을 가지고 있기때문에
SNN의 스냅샷은 데이터의 손실과 시스템의 정지시간을 최소화 하는데 사용된다.
Namenode가 오류가 발생한 경우 SNN은 NameNode로 사용되는데 클러스터의 환경 설정 작업은
수작업으로 이루어진다.

Datanode slave 머신에는 DataNode 데몬이 존재한다.
로컬 파일시스템에 위치한 HDFS 블럭을 기록하거나
해당 파일을 읽는 등의 단순한 기능을 수행한다.
Datanode는 파일의 메타데이터 정보를 보관한다.
메타데이터는 다음정보를 포함한다.
(어떤 파일들이 있는지, 각각의 파일은 어떤게 블록으로 나누어지는지)
Datanode는 블럭의 백업 저장소 역할을 한다.
그리고 지속적으로 현재 시점의 메타데이터를 가질수 있도록 Namenode에게 계속 보고한다.

JobTracker

클러스터 노드에서 실행되는 사용자 어플리케이션들을 관리한다.
사용자가 코드를 하둡클러스터에 넘기면 JobTracker는 여러가지 실행 계획을 결정하게된다.
예를 들면 어느 데이터 파일을 처리할지 결정하고 노드에 여러 태스크를 할당한다.
또한 실행되는 모든 태스크를 모니터링하고 태스크라 실패한 경우 자동으로 실패한 태스크를
재실행한다. 재실행 시 실패한 태스크는 가능하면 다른 노드에 새로 할당되어 실행된다.
하둡 클러스터에는 하나의 JobTraker 만 존재한다. JobTracker는 보통 클러스터의 Master 노등에서 실행된다.

TaskTracker
데이터 저장에 관련된 NameNode 데몬과 마찬가지로 연산에 돤련되 데몬도
Master/Slave 구조를 가진다. JobTracker는 Master로서 MapReduce의 전체 실행을 감독한다.
TaskTracker는 JobTracker가 할당한 개별 작업을 실행한다.
slave 노드에는 TaskTracker가 하나만 존재한다. 하지만 여러 개의 jvm을 생성해서
다수의 map과 reduce 작업을 병렬 처리할 수 있다.
TaskTracker의 또 다른 일은 JobTracker와 계속해서 통신하는 것이다
jobTracker는 heartbeat 메시지가 TaskTracker로 부터 정해진 주기 내에 도착하지 않으면
해당 TaskTracker에 문제가 생긴것으로 간주하고 해당 작업을 클러스터 내에 위치한 다른
노드에 할당한다.
NameNode와 JobTracker 데몬을 실행하는 Master 노드가 있고 Master 노드에 문제가 생길 경우를 대비해, SNN이 Slave 노드 중 하나에 위치 할 수 있다. 클러스터 규모가 작은 경우에는
SNN이 Slave 노드 중 하나에 위치할 수 있다. 또한 클러스터 규모가 큰 경우에는
NameNode와 JobTracker를 서로 다른 컴퓨터에 분할해 배치할 수 있다.
Slave에 해당하는 컴퓨터들은 DataNode와 TaskTracker를 제공하는데 이들은 해당노드에서 작업을 실행한다. 이때 데이터 역시 같은 노드에 저장되어 있어야 한다.
하둡을 구성하려면 우선 Master 노드를 만들고 노드들 사이에 컨트롤 채널을 구헝한다. 이
통신 채널이 SSH가 된다.

'Hadoop' 카테고리의 다른 글

flume 설치 해보고 로그 수집하기  (0) 2013.03.07
하둡 Master / Slave 접근방식과 ssh의 설정  (0) 2013.02.19
하둡 설정 파일  (0) 2013.02.19
HDFS의 특징  (0) 2013.02.19
hadoop HDFS 명령어  (0) 2013.02.19
by pacino.kang 2013. 2. 19. 14:27