본문 바로가기
일/aws

Amazon EMR 구축 #1 :: 개념 정리

by blair2dev 2022. 2. 1.

짤막 history...

팀에서 사용중이던 cloudera  솔루션이 사용 요금을 올리기로 정해지면서 Spark 워크로드를 aws EMR 로 마이그레이션해야 하는 미션이 생겼다. 

 

EMR 이란? 

AWS 는 맵리듀스 를 위한 클라우드 인프라 프로비저닝을 위한 서비스를 만들어 두었고, 그것을 Elastic Map Reduce 라고 이름지었다. 

이 EMR 은 사용자의 설정에 따라 scalable 하게 인스턴스를 프로비저닝 하면서 맵리듀스를 사용하기 위한 성능 최적화를 쉽게 이룰 수 있게 해준다. 

EMR은 하둡 구조의 인프라를 활용하는 대부분의 app 을 사용할 수 있도록 프로비저닝 부트스트랩 단계에서 자동 설치 해준다. 

 

EMR 구성 노드 

EMR 클러스터를 구축하려면 노드에 대한 개념부터 인지하고 있어야 한다. 

 

- 마스터 노드 :

데이터와 작업의 배포를 컨트롤 하고 소프트웨어 구성요소를 실행하여 클러스터를 관리한다. 

작업의 상태를 추적 하고 클러스터 상태를 모니터링한다. 

 

- 코어 노드 : 

소프트웨어 컴포넌트로 작업을 실행하고 hdfs 에 저장하는 역할을 하는 노드이다.  클러스터에는 최소 1개 이상의 코어 노드가 있다. 

 

- 작업(테스크) 노드 : 

작업만을 돌리기 위한 노드이다. 코어노드와는 다르게 hdfs 저장기능까지 하지는 않는다.

분산 처리를 위해 리소스를 붙여주기 위한 용도로 쓰이며, 클러스터의 필수요소는 아니다.

 

YARN 리소스 매니저 

EMR 클러스터는 yarn 을 사용하여 데이터 처리 프레임웍(Spark)을 중앙 관리한다. 

YARN의 핵심 구성 요소는 ResourceManager와 NodeManager 가있다. 

  • ResourceManager
    • YARN 클러스터의 Master 서버로 하나 또는 이중화를 위해 두개의 서버에만 실행됨
    • 클러스터 전체의 리소스를 관리
    • YARN 클러스터의 리소스를 사용하고자 하는 다른 플랫폼으로부터 요청을 받아 리소스 할당(스케줄링)
  • NodeManager
    • YARN 클러스터의 Worker 서버로 ResourceManager를 제외한 모든 서버에 실행
    • 사용자가 요청한 프로그램을 실행하는 Container를 fork 시키고 Container를 모니터링 Container 장애 상황 또는 Container가 요청한 리소스보다 많이 사용하고 있는지 감시(요청한 리소스보다 많이 사용하면 해당 Container를 kill 시킴)

출처 : https://www.popit.kr/what-is-hadoop-yarn/

 

 

스토리지 

HDFS

하둡 분산 파리 시스템이다. scalable 하고 클러스터 내 인스턴스간 분산저장이 가능하다. 여러 카피본들을 인스턴스에 분산하여 장애에 대비한다.

EMRFS

hdfs 같은 파일시스템과 같은 방식으로 s3 에 직접 엑세스 할 수 있게 한다. 

local file system 

EC2 의 수면 주기동안 유지되는 로컬 파일시스템을 참조할 수 있다.