네임노드와 데이터노드
HDFS(Hadoop Distributed File System)는 마스터(master)-슬레이브(slave) 구조로 되어 있다. 즉 마스터 역학을 하는 네임노드(NameNode) 서버 한대에 슬레이브 역할을 하는 데이터노드(DataNode) 서버 여러대로 구성된다.
네임노드(NameNode)의 역할은 HDFS의 메타데이터를 관리하고 클라이언트가 HDFS에 저장된 파일에 접근 할 수 있도록 한다. 데이터를 저장할 때 블록으로 나누어진 데이터를 여러 데이터노드에 분산하여 저장한다. 저장된 데이터를 읽기 위해서는 HDFS 클라이언트를 사용하며 클라이언트는 API형태로 사용자에게 제공 된다.
데이터노드(DataNode)의 역할은 주기적으로 네임노드에게 핫빗(Hearbeat)과 블록의 목록 리포트(Blcok Report)를 보낸다. 네임노드는 핫빗을 통해 데이터노드가 정상적으로 작동하는지 확인한다. 그리고 데이터노드의 리포트를 바탕으로 파일 복제본의 위치를 결정 한다.
네임노드가 데이터노드의 블록 구조를 관리하기 때문에 클라이언트의 요구에 네임노드가 데이터노드의 파일을 읽고 쓰는 것으로 생각할 수 있으나 네임노드는 클라이언트에게 파일을 전송하지 않는다. 단지 클라이언트에게 파일의 저장된 위치를 알려주고 클라이언트는 데이터노드로 직접 연결하여 데이터를 조회 한다.
[참고자료]
http://techannotation.wordpress.com/2012/09/10/hadoop-in-practice/
http://blog.csdn.net/macyang/article/details/8589136
2013-10-24 / 강성욱 / http://sqlmvp.kr
'SW Engineering > Hadoop' 카테고리의 다른 글
맵리듀스(MapReduce) 개념 (0) | 2015.07.22 |
---|---|
보조 네임노드 (0) | 2015.07.22 |
HDFS 블록 파일 시스템 (0) | 2015.07.22 |
HDFS 소개 (0) | 2015.07.22 |
Hadoop Echosystem (0) | 2015.07.22 |