데이터 엔지니어링 정복/HDFS

[HDFS] Hadoop 개념 및 구성요소

eeaarrtthh 2021. 5. 7. 17:23
728x90
반응형

1. 개념

더보기

빅데이터의 에코시스템들은 대부분 하둡을 위해 존재하고 하둡에 의존해서 발전해 가고 있다 해도 과언이 아니다.
하둡은 크게 두 가지 기능이 있다.

1. 대용량 데이터를 분산 저장하는 기능

2. 분산 저장된 데이터를 가공/분석 처리하는 기능

 


2. 구성요소

더보기

 

-DataNode : 블록단위 (64MB or 128MB) 로 분할된 대용량 파일들이 DataNode의 디스크에 저장 및 관리, 하나의 서버이다.

 

-NameNode :  DataNode에 저장된 파일들의 메타 정보를 메모리상에서 로드해서 관리, 어떤 데이터가 어떤 DataNode에 있는지 정보를 관리하고 저장한다.

 

-EditsLog : 파일들의 변경 이력(수정, 삭제 등) 정보가 저장되는 로그 파일

 

-Fslmage : NameNode의 메모리상에 올라와 있는 메타 정보를 스냅샷 이미지로 만들어 생성한 파일

 

=Ver 1.x

-SecondaryNameNode : NameNode의 Fslmage와 EditsLog 파일을 주기적으로 유지 관리해 주는 체크포인팅 노드

* EditsLog, Fslmage, SecondaryNameNode는 모두 NameNode를 도와주는 녀석들

 

-MapReduce v1 : DataNode에 분산 저장된 파일이 스필릿(Map)되어 다양한 연산(정렬, 그루핑, 집계 등)을 수행한 뒤 그 결과를 다시 병합(Reduce)하는 분산 프로그래밍 기법

 

-JobTracker : 맵리듀스의 잡을 실행하면서 태스크에 할당하고, 전체 잡에 대해 리소스 분배 및 스케줄링

 

-TaskTracker : JobTracker가 요청한 맵리듀스 프로그램이 실행되는 태스크이며, 이때 맵 태스크와 리듀스 태스크가 생성된다.

*JobTracker와 TaskTracker는 MapReduce를 도와준다.

 

=Ver 2.x

-Active/Stand-By NameNode : NameNode를 이중화해서 서비스 중인 Active NamaNode와 실패 처리를 대비한 Standby NameNode로 구성

 

-MapReduce v2 / YARN : 하둡 클러스터 내의 자원을 중앙 관리하고, 그 위에 다양한 애플리케이션을 실행 및 관리가 가능하도록 확장성과 호환성을 높인 하둡 2.x의 플랫폼, 하둡의 여러 DataNode들 위에 YARN 리소스 매니저를 설정하고 그 위에서 다양한 SW활용 가능하게 함.

 

-ResourceManager : 하둡 클러스터 내의 자원을 중앙 관리하면서, 작업 요청 시 스케줄링 정책에 따라 자원을 분배해서 실행시키고 모니터링

 

-NodeManager : 하둡 클러스터의 DataNode마다 실행되면서 Container를 실행시키고 라이프 사이클을 관리한다.

*ResourceManager NodeManager 는 ver.1의 JobTracker와 TaskTracker와 같다.

 

-Container : DataNode의 사용가능한 리소스(CPU, 메모리, 디스크 등)를 Container 단위로 할당해서 구성, Container위에서 다양한 분산 Job들이 실행된다.

 

-ApplicationMaster : 애플리케이션 실행되면 ApplicationMaster가 생성되며 ApplicationMaster는 NodeManager에게 애플리케이션이 실행되리 Container를 요청하고, 그 위에서 애플리케이션을 실행 및 관리한다. Container위에서 실행되는 분산 Job들은 ApplicationMaster에서 관리된다.

 

-JournalNode : 3개 이상의 노드로 구성되어 EditsLog를 각 노드에 복제 관리하며 Active NameNode는 EditsLog에 쓰기만을 수행하고 Stanby NameNode는 읽기만을 실행한다.

 

 

 

 

728x90
반응형