티스토리 뷰

HDFS vs HDFS2

기존의 하둡 파일 시스템의 가장 큰 취약점은 바로 네임노드였다. 

여러 개의 데이터 노드를 연결해서 데이터 노드에서 발생할 수 있는 하드웨어 오류에 대응할 수 있었지만, 

네임 노드는 하나로 구성함으로써 위험에 노출되어 있던 것이 사실이다. 


HDFS2로 넘어가면서 네임노드에도 확장성을 위해 여러 개의 네임노드를 구성할 수 있도록 변경하였다. 

그래서 네임 서버들을 구분하기 위한 여러 개의 네임스페이스를 도입하게 되었고, 네임 서버에 대한 고가용성도 확보할 수 있었다. 

또한 여러 개의 네임 서버에서 데이터 노드를 관리하기 위해서 Block Pools 개념도 등장한다. 



마찬가지로 하둡 1.0의 맵리듀스에서도 마스터 노드에 하나의 잡트래커를 사용했다. 

잡트래커에서 스케쥴링, 모니터링, 실패한 태스크의 재실행 등 다양한 역할을 수행했었다. 



YARN - NexGen MapReduce

하둡 2.0에서 잡 트래커커의 역할을 리소스 관리와 잡 스케쥴링/모니터링으로 분리해서 효율성을 높인 것이 바로 Yarn이다. 

마스터 노드에서는 리소스 관리를 진행하고, NodeManager는 각 노드에서 실행하고, ApplicatonMaster는 각 어플리케이션 단위로 실행하는 것으로 구분하였다. 

또한, 하둡 1.0은 맵리듀스만을 기반으로 Hive, Pig 정도의 어플리케이션을 활용할 수 있었지만, 

YARN 기반으로 업그레이드하면서 다양한 어플리케이션들을 하둡 파일 시스템 기반으로 활용할 수 있게 된다. 



그러면 YARN 아키텍처의 흐름을 살펴보기로 하자. 



1. 클라이언트에서 응용프로그램을 요청한다. 

2. Resource Manager는 Container 할당을 책임지는 Applicatoin Master를 실행한다. 

3. Application Master가 Resource Manager에 등록된다. 

4. Application Master가 resource-request 프로토콜을 통해 적절한 리소스의 Container를 요청한다. 

5. Container가 성공적으로 할당되면, Application Master는 Container 실행 스펙을 Node Manager에게 제공하여 Container를 실행시킨다.

6. 응용프로그램 코드는 Container에서 실행되고, 진행률/상태 등의 정보를 Application Master에 제공한다. 

7. 응용프로그램 실행 중 클라이언트는 진행률/상태 등을 얻기 위해 Application Master와 직접 통신한다. 

8. 응용프로그램이 완료되고 필요한 작업이 종료되면, Application Manager는 Resource Manager에 등록을 해제하고, 자신의 Container를 다른 용도로 사용할 수 있도록 종료한다. 


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함