hadoop-0.23 hdfs block pool 개념

거의 2년만에 hadoop의 새로운 버전이 나올 예정입니다. 중간에 릴리즈된 0.21, 0.22는 호응을 얻지 못하고 바로 0.23 버전으로 올라갈 예정이라고 합니다. 정식 버전은 2012년 2Q 정도나 되어야 나올 것 같네요... 0.23에서는 기존 hadoop 개념에서 많은 내용들이 변경되었고 코드도 많이 바뀌었기 때문에 지금부터 차근차근 준비하는게 좋습니다.
그래서 몇회에 걸쳐 조금씩 정리해볼까 합니다.

첫번째로 먼저 hdfs의 block pool에 대해서 살펴보겠습니다.

사용자 삽입 이미지
(오해의 소지가 있어 그림을 조금 수정했습니다.)
Block Pool 개념은 간단하게 정의하면 DataNode를 Block을 관리하는 데몬으로 사용하고 NameNode는 Block의 메타 정보를 관리하는 데몬 역할을 수행합니다(조금 차이는 있지만 설명을 쉽게 하기 위해). 그리고  DataNode는 하나의  NameNode에만 속하는 것이 아니라 여러 NameNode에 속할 수 있습니다.
각 BlockPool은 하나의 NameNode에만 속할 수 있고  하나의  DataNode에서는 BlockPool 별로 isolation 되어 있어 간섭되지 않는 구조입니다.
그리고 하나의 NameNode에서 관리하는 namespace 영역은 다른 NameNode의 namespace와는 별개로 동작합니다. 즉 통합된 global namespace는 제공되지 않습니다.
이 구조만 보면 NameNode 단위로 볼륨관리를 할 수 있게 하는 기능이 추가되었다고 볼 수 있습니다. 그리고 운영중에 NameNode에 namespace 용량이 모자라면 클러스터 내에 NameNode를 하나 더 실행해서 확장해 나갈 수 있는 방법을 제공하고 있습니다.
하지만 통합된 namespace를 제공하지 않기 때문에 몇개의 NameNode에 있는 디렉토리를 통합해서 보기 위해서는 별도의 프로그램을 구성해야 합니다. 물론 이런 기능도 같이 제공하고 있습니다. 서버단은 아니고 클라이언트 계층에서 ViewFS라는 기능을 이용하여 통합된 뷰로 볼 수 있습니다.

사용자 삽입 이미지

기존 버전 형태로 사용할 경우에는 하나의 NameNode만 실행하면 기존 버전과 동일한 구성으로 실행됩니다.

오늘은 여기까지 입니다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


Trackback URL : http://www.jaso.co.kr/trackback/446

Leave a comment
« Previous : 1 : ... 24 : 25 : 26 : 27 : 28 : 29 : 30 : 31 : 32 : ... 410 : Next »