짤막 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 의 수면 주기동안 유지되는 로컬 파일시스템을 참조할 수 있다.
'일 > aws' 카테고리의 다른 글
AWS Glue 활용기 #1 :: Architect (0) | 2022.03.27 |
---|---|
Amazon EMR 구축 #2 :: 프로비저닝 (0) | 2022.02.01 |
AWS DMS Consistency Checking Application Concept (0) | 2022.01.11 |
AWS Code Deploy + Jenkins + GitLab (0) | 2022.01.04 |
AWS DMS :: from aurora mySQL to S3 (0) | 2021.12.06 |