SlideShare a Scribd company logo
하둡2, YARN 짧게 보기
최범균 2014-05-16
하둡1 MR 시스템의 몇 가지 단점
한 노드에서 실행할 수
있는 Map과 Reduce용
태스크 개수가 제한됨.
즉, 노드에 여유 자원이
있어도 그 자원을 활용
하지 못하는 상황이 발
생.
MR만 실행 가능.
클러스터의 자원 배분과 Job 관리를 함께 수행.
클러스터에서 병목 지점이 됨.
이미지 출처: http://hadoop.apache.org/
그래서 만든 YARN
● Yet Another Resource Negotiator
● 주요 특징
o MR1 시스템의 JobTracker가 하던 두 가지 역할-자원
관리, Job 상태 관리-를 ResourceManager와
ApplicationMaster로 분리
 기존 JobTracker에 몰리던 병목을 제거
o 범용 컴퓨팅 클러스터
 MR 외에 다양한 어플리케이션을 실행할 수 있으
며, 어플리케이션마다 자원(CPU, 메모리)을 할당
받음
YARN의 구조
어플리케이션 마다 자원을 할당하고,
App Master를 관리한다.
클러스터에 1개
노드의 컨테이너를 관리
하고 자원 상태를 RM에
통지. 노드 당 1개
어플리케이션의 실행을
관리하고 , 상태를 RM에
통지
어플리케이션 당 1개
어플리케이션을 실행. 제
한된 자원을 가지고, 상
태를 AM에 통지
이미지 출처: http://hadoop.apache.org/
YARN의 실행 흐름
1. 클라이언트가 RM에 어플리케이션 제출
2. NM를 통해 AM를 실행
3. AM은 RM에 자신을 등록
4. AM은 RM을 통해 어플리케이션을 실행
할 컨테이너 할당을 요청함
5. AM은 NM에게 할당된 컨테이너를 실행
하라고 요청함 (AM은 어플리케이션 실
행에 필요한 정보를 NM에 제공)
6. 컨테이너에서 실행되는 어플리케이션은
상태 정보를 AM에 전송
7. 클라이언트는 어플리케이션 실행 상태
정보를 얻기 위해 AM와 직접 통신
8. 어플리케이션이 종료되면 AM은 RM에
서 자신을 제거하고 셧다운 됨
이미지 출처: 호튼웍스 블로그
YARN에서의 MR 실행
클라이언트 노드
클라이언트 JVM
MR
프로그램
JOB
1: 잡 실행
RM 노드
Resource
Manager
2: 어플리케이션 ID 구함
HDFS
3: 잡 리소스 복사
NM 노드
Node Manager
MRAppMaster
4: 어플리케이션 제출
5.a: 컨테이너 실행
5.b: 배포
6: 초기화
7: 입력 스플릿 검색
8: 자원 할당
NM 노드
Node Manager
태스트JVM
YarnChild
Task
9a: 컨테이너 실행
9.b: 배포
10: 잡 자원 검색
11: 실행
실패 대상 처리 방식
태스크 * 실패-태스크 실행 중 익셉션 발생(AM에 통지), JVM 갑작스런 종료
(AM에 통지), 행 걸린 태스크(핑을 통한 확인)-가 발생하면, AM은 태
스크 실행을 재시도
* 최대 시행 횟수 이상 실패하면 더 이상 태스크를 실행하지 않음
* 맵과 리듀스 태스크가 일정 비율 이상 실패하면, 잡을 실패로 간주
* AM은 한 노드에서 지정 횟수 이상 태스크가 실패하면, 해당 노드에
서 태스크를 실행하지 않음
어플리케이션 마스
터
* AM에서 RM로 주기적인 하트비트를 보내, AM의 정상 여부 판단.
* AM이 실패로 간주되면, RM은 다른 노드에 AM을 생성하고 어플리
케이션을 실행
노드 매니저 * NM는 RM로 하트비트를 보내, NM의 정상 여부 판단.
* NM가 실패로 간주되면, RM는 리소스 가용 풀에서 해당 NM를 제
거하고 해당 NM에서 실행중인 태스크와 어플리케이션은 다른 노드
에서 실행
리소스 매니저 * 주키퍼 기반 이중화 사용 (하둡 2.3.0 버전 기준)
YARN에서의 MR 실패 처리
YARN 어플리케이션 예
● YARN 기반 실행
o Storm on YARN, 호튼웍스
o HOYA (Hbase on YARN), 호튼웍스
o Spark on YARN
o Apache Giraph on YARN
● YARN 어플리케이션 개발
o Spring Hadoop 2.0 (아직 RC1 버전)
Yahoo!는 YARN 기반 Storm을 이용해서 스트림 처리
- 320개 노드, 초당 13만개 이벤트 처리, 1만 2천 쓰레드 실행 증
- 공유데이터는 1900 노드에 2PB 보관
Yahoo! 전체
- 30,000 노드가 YARN에서 동작, 하루 40만개 잡 실행
- 노드 활용에서 60~150% 향상이 있다고 함
정리
하둡1 MR
- MR만 실행 가능
- 낮은 자원 활용
(고정된 맵/리듀스 슬롯)
- 확장 한계 (JobTracker 병목)
하둡2 YARN
- 범용 컴퓨팅/데이터 클러스터
- MR 외 다양한 어플리케이션 실행 가능
- 높은 자원 활용
- 확장성 개선 (역할 분리)

More Related Content

What's hot

[빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원][빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원]
Jayoung Lim
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
현철 박
 

What's hot (20)

Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
 
Hadoop administration
Hadoop administrationHadoop administration
Hadoop administration
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
NoSQL
NoSQLNoSQL
NoSQL
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기
 
Map reduce 기본 설명
Map reduce 기본 설명Map reduce 기본 설명
Map reduce 기본 설명
 
ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회
 
Hadoop overview
Hadoop overviewHadoop overview
Hadoop overview
 
[빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원][빅데이터 컨퍼런스 전희원]
[빅데이터 컨퍼런스 전희원]
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
 
처음 접하는 Oozie Workflow, Coordinator
처음 접하는 Oozie Workflow, Coordinator처음 접하는 Oozie Workflow, Coordinator
처음 접하는 Oozie Workflow, Coordinator
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼MariaDB MaxScale monitor 매뉴얼
MariaDB MaxScale monitor 매뉴얼
 
Druid+superset
Druid+supersetDruid+superset
Druid+superset
 
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
Understanding of Apache kafka metrics for monitoring
Understanding of Apache kafka metrics for monitoring Understanding of Apache kafka metrics for monitoring
Understanding of Apache kafka metrics for monitoring
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장
 

More from beom kyun choi

ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료
beom kyun choi
 

More from beom kyun choi (20)

옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기
 
TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
DDD 준비 서문래
DDD 준비 서문래DDD 준비 서문래
DDD 준비 서문래
 
Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
 
Ddd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugDdd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksug
 
MVP 패턴 소개
MVP 패턴 소개MVP 패턴 소개
MVP 패턴 소개
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유
 
Spring Boot 소개
Spring Boot 소개Spring Boot 소개
Spring Boot 소개
 
모델링 연습 리뷰
모델링 연습 리뷰모델링 연습 리뷰
모델링 연습 리뷰
 
ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료
 
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)
 
리뷰의 기술 소개
리뷰의 기술 소개리뷰의 기술 소개
리뷰의 기술 소개
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개
 
Zookeeper 소개
Zookeeper 소개Zookeeper 소개
Zookeeper 소개
 

하둡2 YARN 짧게 보기

  • 1. 하둡2, YARN 짧게 보기 최범균 2014-05-16
  • 2. 하둡1 MR 시스템의 몇 가지 단점 한 노드에서 실행할 수 있는 Map과 Reduce용 태스크 개수가 제한됨. 즉, 노드에 여유 자원이 있어도 그 자원을 활용 하지 못하는 상황이 발 생. MR만 실행 가능. 클러스터의 자원 배분과 Job 관리를 함께 수행. 클러스터에서 병목 지점이 됨. 이미지 출처: http://hadoop.apache.org/
  • 3. 그래서 만든 YARN ● Yet Another Resource Negotiator ● 주요 특징 o MR1 시스템의 JobTracker가 하던 두 가지 역할-자원 관리, Job 상태 관리-를 ResourceManager와 ApplicationMaster로 분리  기존 JobTracker에 몰리던 병목을 제거 o 범용 컴퓨팅 클러스터  MR 외에 다양한 어플리케이션을 실행할 수 있으 며, 어플리케이션마다 자원(CPU, 메모리)을 할당 받음
  • 4. YARN의 구조 어플리케이션 마다 자원을 할당하고, App Master를 관리한다. 클러스터에 1개 노드의 컨테이너를 관리 하고 자원 상태를 RM에 통지. 노드 당 1개 어플리케이션의 실행을 관리하고 , 상태를 RM에 통지 어플리케이션 당 1개 어플리케이션을 실행. 제 한된 자원을 가지고, 상 태를 AM에 통지 이미지 출처: http://hadoop.apache.org/
  • 5. YARN의 실행 흐름 1. 클라이언트가 RM에 어플리케이션 제출 2. NM를 통해 AM를 실행 3. AM은 RM에 자신을 등록 4. AM은 RM을 통해 어플리케이션을 실행 할 컨테이너 할당을 요청함 5. AM은 NM에게 할당된 컨테이너를 실행 하라고 요청함 (AM은 어플리케이션 실 행에 필요한 정보를 NM에 제공) 6. 컨테이너에서 실행되는 어플리케이션은 상태 정보를 AM에 전송 7. 클라이언트는 어플리케이션 실행 상태 정보를 얻기 위해 AM와 직접 통신 8. 어플리케이션이 종료되면 AM은 RM에 서 자신을 제거하고 셧다운 됨 이미지 출처: 호튼웍스 블로그
  • 6. YARN에서의 MR 실행 클라이언트 노드 클라이언트 JVM MR 프로그램 JOB 1: 잡 실행 RM 노드 Resource Manager 2: 어플리케이션 ID 구함 HDFS 3: 잡 리소스 복사 NM 노드 Node Manager MRAppMaster 4: 어플리케이션 제출 5.a: 컨테이너 실행 5.b: 배포 6: 초기화 7: 입력 스플릿 검색 8: 자원 할당 NM 노드 Node Manager 태스트JVM YarnChild Task 9a: 컨테이너 실행 9.b: 배포 10: 잡 자원 검색 11: 실행
  • 7. 실패 대상 처리 방식 태스크 * 실패-태스크 실행 중 익셉션 발생(AM에 통지), JVM 갑작스런 종료 (AM에 통지), 행 걸린 태스크(핑을 통한 확인)-가 발생하면, AM은 태 스크 실행을 재시도 * 최대 시행 횟수 이상 실패하면 더 이상 태스크를 실행하지 않음 * 맵과 리듀스 태스크가 일정 비율 이상 실패하면, 잡을 실패로 간주 * AM은 한 노드에서 지정 횟수 이상 태스크가 실패하면, 해당 노드에 서 태스크를 실행하지 않음 어플리케이션 마스 터 * AM에서 RM로 주기적인 하트비트를 보내, AM의 정상 여부 판단. * AM이 실패로 간주되면, RM은 다른 노드에 AM을 생성하고 어플리 케이션을 실행 노드 매니저 * NM는 RM로 하트비트를 보내, NM의 정상 여부 판단. * NM가 실패로 간주되면, RM는 리소스 가용 풀에서 해당 NM를 제 거하고 해당 NM에서 실행중인 태스크와 어플리케이션은 다른 노드 에서 실행 리소스 매니저 * 주키퍼 기반 이중화 사용 (하둡 2.3.0 버전 기준) YARN에서의 MR 실패 처리
  • 8. YARN 어플리케이션 예 ● YARN 기반 실행 o Storm on YARN, 호튼웍스 o HOYA (Hbase on YARN), 호튼웍스 o Spark on YARN o Apache Giraph on YARN ● YARN 어플리케이션 개발 o Spring Hadoop 2.0 (아직 RC1 버전) Yahoo!는 YARN 기반 Storm을 이용해서 스트림 처리 - 320개 노드, 초당 13만개 이벤트 처리, 1만 2천 쓰레드 실행 증 - 공유데이터는 1900 노드에 2PB 보관 Yahoo! 전체 - 30,000 노드가 YARN에서 동작, 하루 40만개 잡 실행 - 노드 활용에서 60~150% 향상이 있다고 함
  • 9. 정리 하둡1 MR - MR만 실행 가능 - 낮은 자원 활용 (고정된 맵/리듀스 슬롯) - 확장 한계 (JobTracker 병목) 하둡2 YARN - 범용 컴퓨팅/데이터 클러스터 - MR 외 다양한 어플리케이션 실행 가능 - 높은 자원 활용 - 확장성 개선 (역할 분리)