데이터 엔지니어링/빅데이터

Hadoop의 구성 요소

Malachai Lee 2022. 5. 9. 22:38

Hadoop Common

타 모듈들에게 공통으로 필요한 라이브러리 및 유틸리티를 담는다.

Java Archive(JAR)의 형태로 제공돤다. JRE 1.6 이상을 요구한다.

하둡을 기동 및 셧다운할 때 필요한 스크립트를 제공한다. Secure Shell(SSH)을 요구한다.

Hadoop Core

HDFS

Hadoop 클러스터 노드에 데이터를 저장하는 분산된 파일 시스템이다.

클라이언트가 네임노드에서 접근해야 하는 파일의 위치 등 메타데이터 수집 → 데이터 노드에 접근하여 파일 쓰기/읽기

YARN

클러스터에 있는 컴퓨팅 자원들(CPU, 메모리 등)을 동적으로 관리하는 플랫폼 서비스이다.

MapReduce의 경우, 대규모 테이블 데이터를 검색하여 많은 디스크 관련 I/O를 사용하여 적은 메모리를 사용한다. Spark의 경우, 반복적인 머신러닝 알고리즘을 사용하여 복잡한 계산으로 많은 메모리와 CPU를 사용한다. 이러한 여러개의 프레임 워크(MapReduce, Spark 등)를 수행하는 동안 동적으로 CPU와 메모리 자원을 공유할 수 있도록 한다.

 Resource Manager

 Resource Manager는 클러스터에 하나 존재한다.

 각 Application 시작을 초기화한다. → 작업노드의 Node Manager로부터 주기적으로 전송받는 Heart beat 정보를 통해   작업 노드에 있는 자원들을 어떻게 할당할 것인가를 결정한다. → 자원 관리를 위해 각 작업의 에플리케이션 마스터에   대한 컨테이너를 생성하여 작업을 수행하도록 한다.

 Node Manager

 자원 관리자에게 보유중인 컨테이너 정보와 노드의 생사 정보 등 자신의 자원에 대한 정보를 제공하며, 노드 레벨에서의 보안을 관리하면서 부가 서비스들을 수행한다.

 Application Master로부터 요청받은 컨테이너에 해당 프로세스를 론칭하고 사용되는 자원을 모니터링 한다. →  Application에 대한 실행 로그들을 모아 HDFS에 저장한다.

 MapReduce

 일정한 크기로 데이터를 분할하여 여러 컴퓨터에서 병렬적으로 처리할 수 있도록 한 후, 결과를 통합하여 최종 결과를 완성하는 기술이다.

 YARN의 작동 방식

 작업 submission을 위해 클라이언트가 YARN의 Daemon 프로세스 중 하나인 Resource Manager에게 할당 → 각 Client의 Application마다 하나씩 존재하는 Application Master가 작업에 필요한 자원을 Resource Manager에게 요청 → Resouece Manager가 자원을 알맞게 배분

'데이터 엔지니어링 > 빅데이터' 카테고리의 다른 글

Ambari  (0) 2022.05.16
Apache Hadoop Ecosystem  (0) 2022.05.09
Hadoop의 빅데이터 처리 방식  (0) 2022.05.09
Hadoop의 계층  (0) 2022.05.09
빅데이터 처리 시스템 HW  (0) 2022.05.09