서브메뉴

본문

아파치 하둡 YARN (차세대 데이터 플랫폼을 지향하는)
아파치 하둡 YARN (차세대 데이터 플랫폼을 지향하는)
저자 : 아룬 머시|비나드 쿠마 바빌라팔리|더그 이들린|조셉 니미크|제프 마컴
출판사 : 에이콘출판
출판년 : 2014
ISBN : 9788960776388

책소개

에이콘 데이터 과학 시리즈. 이 책에서는 하둡 2.x의 설치 방법과 기존 맵리듀스 통합, YARN 아키텍처, 커패시티(capacity) 스케줄러 등을 설명한다. 이중에서 핵심은 YARN의 3가지 주요 컴포넌트인 리소스매니저(RM)와 애플리케이션매니저(AM), 노드매니저(NM)의 설계와 아키텍처 부분이다. 더불어 기업의 조직 구성에 알맞게 자원 관리를 할 수 있는 커패시티 스케줄러를 완전히 이해할 수 있다. 기업의 하둡 운용자나 데이터 엔지니어에게 도움이 될 책이다.



이 책은 아파치 하둡 YARN의 목표와 YARN의 설계 및 아키텍처, 그리고 맵리듀스 이상의 규모로 데이터를 활용할 수 있게 하둡 에코시스템을 확장하는 방법 등의 상세한 부분을 다루려고 의도했다. YARN 클러스터 설치와 관리, 그리고 YARN 애플리케이션 개발과 새로운 프레임워크가 맵리듀스를 넘어 YARN에서 실행될 수 있게 사용자 지원에 주로 초점을 맞췄다.



아파치 하둡 에코시스템을 확장하는 방법인 YARN의 목표와 설계, 아키텍처, 구성 요소, 단일 노드에서 YARN의 탐색, YARN 클러스터와 커패시티 스케줄러의 관리, 기존 맵리듀스 애플리케이션을 실행하는 방법, 대규모 클러스터 YARN 애플리케이션을 개발하는 방법, YARN에서 실행하는 새로운 오픈소스 프레임워크 등을 다루고 있다.
[알라딘에서 제공한 정보입니다.]

출판사 서평

★ 요약 ★



아파치 하둡(Apache Hadoop) 2.x 버전은 리소스매니저(RM)와 애플리케이션매니저(AM), 노드매니저(NM)라는 주요한 3가지 컴포넌트로 구성한 YARN이라는 아키텍처에 의존한다. 사실 하이브(Hive) 같은 에코시스템이나 메모리 기반 프레임워크/플랫폼을 사용하기에 아직 YARN 기반 애플리케이션은 이전 하둡 1.x처럼 많지는 않다. 하지만 에코시스템 등의 대부분은 YARN 기반에서 운용되기 때문에 YARN의 아키텍처를 더 깊이 이해할 필요가 있다. 이 책에서는 하둡 2.x의 설치 방법과 기존 맵리듀스 통합, YARN 아키텍처, 커패시티(capacity) 스케줄러 등을 설명한다. 이중에서 핵심은 YARN의 3가지 주요 컴포넌트인 리소스매니저(RM)와 애플리케이션매니저(AM), 노드매니저(NM)의 설계와 아키텍처 부분이다. 더불어 기업의 조직 구성에 알맞게 자원 관리를 할 수 있는 커패시티 스케줄러를 완전히 이해할 수 있다. 기업의 하둡 운용자나 데이터 엔지니어에게 도움이 될 책이다.



★ 이 책에서 다루는 내용 ★



■ 아파치 하둡 에코시스템을 확장하는 방법인 YARN의 목표와 설계, 아키텍처, 구성 요소

■ 단일 노드에서 YARN의 탐색

■ YARN 클러스터와 커패시티 스케줄러의 관리

■ 기존 맵리듀스 애플리케이션을 실행하는 방법

■ 대규모 클러스터 YARN 애플리케이션을 개발하는 방법

■ YARN에서 실행하는 새로운 오픈소스 프레임워크



★ 이 책의 대상 독자 ★



이 책은 아파치 하둡 YARN의 목표와 YARN의 설계 및 아키텍처, 그리고 맵리듀스 이상의 규모로 데이터를 활용할 수 있게 하둡 에코시스템을 확장하는 방법 등의 상세한 부분을 다루려고 의도했다. YARN 클러스터 설치와 관리, 그리고 YARN 애플리케이션 개발과 새로운 프레임워크가 맵리듀스를 넘어 YARN에서 실행될 수 있게 사용자 지원에 주로 초점을 맞췄다.



이 책은 아파치 하둡을 소개하려는 목적이 아니라는 데 주의하라. 독자가 하둡 버전 1의 동작 지식을 알고 있고, 하둡 맵리듀스 프레임워크상에서 애플리케이션을 작성할 수 있으며, 하둡 분산 파일 시스템의 아키텍처와 사용법을 알고 있다고 가정한다. 소개 자료에 대해서는 책의 웹사이트(http://yarn-book.com)를 참고하자. 이 책의 향후 개정판에서는 맵리듀스 애플리케이션 프레임워크 자체와 사용자가 자신의 맵리듀스 애플리케이션을 설계하고 코딩할 수 있는 방법에 관련한 자료가 확장되기를 희망한다.



★ 이 책의 구성 ★



1장, '아파치 하둡 YARN: 간략한 역사와 배경'에서는 아파치 하둡 YARN이 어떻게, 그리고 왜 출현하게 됐는지 역사를 설명한다.



2장, '아파치 하둡 YARN의 빠른 설치'에서는 단일 머신에서 아파치 하둡의 빠른 설치와 탐색할 수 있는 가이드를 제공한다.



3장, '아파치 하둡 YARN의 핵심 개념'에서는 YARN을 소개하고 하둡 에코시스템을 확장하는 방법을 설명한다.



4장, 'YARN 컴포넌트의 기능 개요'에서는 독자들이 시작할 수 있게 YARN 컴포넌트의 기능 개요를 설명한다.



5장, '아파치 하둡 YARN 설치'에서는 YARN을 설치하는 방법을 설명한다. 스크립트 기반의 매뉴얼 설치뿐만 아니라 아파치 암바리(Ambari) GUI 기반 설치 둘 다를 다룬다.



6장, '아파치 하둡 YARN 관리'에서는 YARN 클러스터의 관리에 대한 정보를 다룬다.



7장, '아파치 하둡 YARN 아키텍처 가이드'에서는 독자에게 YARN의 내부 동작 원리를 설명하기 위해 YARN의 아키텍처를 깊이 있게 살펴본다.



8장, 'YARN의 커패시티 스케줄러'에서는 커패시티 스케줄러에 대해 상세히 설명한다.



9장, '아파치 하둡 YARN의 맵리듀스'에서는 기존 맵리듀스 기반 애플리케이션 실행과 YARN을 활용하는 방법을 설명한다.



10장, '아파치 하둡 YARN 애플리케이션 예제'에서는 JBoss 애플리케이션 서버 클러스터를 YARN 애플리케이션으로 개발하고 동작하는 방법을 상세히 설명한다.



11장, '아파치 하둡 YARN 분산 셸'에서는 분산 셸(distributed-shell)의 사용법 및 내부와 YARN에 배포돼 내장 표준 예제 애플리케이션을 설명한다.



YARN의 가장 흥미로운 부분 중 하나는 여러 프로그래밍 모델과 애플리케이션 프레임워크를 지원하는 능력이다. 12장, '아파치 하둡 YARN 프레임워크'에서는 YARN 이하에서 개발되고 있는 신규 오픈소스 프레임워크의 간략한 설명으로 끝맺는다.



추가로, 부록 A '추가적인 내용과 코드 다운로드'와 부록 B 'YARN 설치 스크립트', 부록 C 'YARN 관리 스크립트', 부록 D '나기오스 모듈', 부록 E '자원과 추가 정보', 부록 F 'HDFS 빠른 참조' 내용이 담겨있다.



★ 저자 서문 ★



아파치 하둡은 다채롭고 오랜 역사가 있다. 하둡은 사용자 사례(웹 검색)에 대한 인프라 컴포넌트로 밀레니엄 첫 10년의 중반부에 탄생해서 오랜 길을 걸어 왔으며, 업계의 광범위한 스펙트럼 사이에서 데이터 아키텍처의 강력한 부분으로 변화하고 있다. 하둡은 아파치 소프트웨어 재단(ASF)에서 수용한 커뮤니티로서 (적절한 시기에 중요한 문제를 해결하는) 타이밍을 보였고, 개발과 개발 관련 발전, 대규모 생산 배포 등에 야후가 광범위한 초기 투자를 했으며, 현재 폭넓은 에코시스템으로 채택된 하둡은 많은 요인에서 성공을 거뒀다. 돌이켜보면 그 성공은 납득할 만하다.



비나드와 나는 처음부터 이 여행에 참여하는 특혜를 받았다. 산업에서 큰 파장을 일으킬 기회를 얻기란 굉장히 드물며, 심지어 노력을 공유하고, 좋은 아이디어를 장려하며, 의심스러운 부분을 제거할 수 있게 하는 오픈 커뮤니티에서 커뮤니티 소프트웨어 개발이란 굉장한 흐름 속에서는 더욱 드물다. 우리는 업계가 데이터로부터 중요한 가치를 이해하고 마음을 열게 지원했던 노력하는 데 참여할 수 있었던 것을 매우 자랑스럽게 생각한다.



YARN의 초기 영향력은 더 이상 참신하지 않지만, 기대치는 상당히 높아 아파치 하둡을 새로운 시대로 이끌고 있다. 호튼웍스에서는 세계 데이터의 최소한 절반은 아파치 하둡으로 처리할 것이라고 강력히 믿는다. 그런 데이터를 위해 적어도 5년 동안 아파치 하둡은 맵리듀스를 넘어 더 발전해야 하는 것이 분명해졌다.



업계에서는 모든 데이터를 아파치 하둡 HDFS에 넣고 실시간 이벤트 처리와 대화형 SQL 쿼리, 배치 프로세싱, 기계 학습, 기타 여러 방법으로 데이터를 처리할 필요가 있다. 아파치 하둡 1.0은 HDFS에 많은 형태의 데이터를 저장하지만, 데이터를 처리하는 데 본질적으로 사용하는 솔루션은 맵리듀스뿐이어서 매우 제한적이다.



YARN은 아파치 하둡에서 본질적으로 다차원적 요구 사항을 해결하기 위한 방법이다. 그렇기 때문에 한 번에 하나만 하는 배치 처리와 저장 시스템의 하둡 핵심을 다용도 플랫폼으로 변환한다. 스케줄링과 워크로드 관리, 내고장성을 포함하는 (1) 핵심인 자원 매니저와 확장성과 분산 시스템의 복잡성을 감추고 최종 사용자에게 단순화된 인터페이스를 제공하는 (2) 맵리듀스 프레임워크로 아파치 하둡 맵리듀스가 갖고 있는 이 2가지 측면의 핵심을 인지해야 한다. 특히 맵리듀스 프레임워크는 내고장성과 확장성, 그리고 여러 다른 문제의 껄끄러운 세부 문제를 대처할 수 있게 사용자를 자유롭게 했다. YARN은 단순한 아이디어를 실현한 것이다. YARN에서 맵리듀스는 데이터를 처리하는 데 하나의 옵션이 됐으며, 아파치 스톰(실시간 이벤트 처리)과 아파치 테즈(대화형 쿼리 가속화 엔진), 아파치 스파크(인메모리 기계학습) 등 여타 프레임워크가 성공적으로 함께하게 됐다.



분산 시스템은 어렵지만 특히 분산 시스템의 장애가 발생했을 때는 더 어렵다. YARN은 프로그래머가 자원과 데이터의 공통 사항을 공유하면서 분산 프레임워크를 설계하고 구현하게 해준다. YARN은 자원 중재와 고립, 클러스터 상태, 장애 모니터링 같은 성가신 문제를 자동으로 관리함으로써 애플리케이션 개발자가 비즈니스 로직에 집중할 수 있게 해주는 대신, 애플리케이션은 YARN의 신호에 따라 동작하게 만들어야 한다. YARN은 프레임워크 개발자가 직면한 많은 문제를 처리함으로써 시스템 구축을 위한 노력을 상당히 단순화시켜줬다. 동시에 프레임워크 개발자는 프레임워크 고유 방식으로 결과를 처리하면 된다.



YARN의 파워는 쉽게 이해가 되지만, YARN과 연결된 시스템을 구축하려면 YARN의 복잡성을 이해하는 것을 사용자에게 요구한다. 이 책은 두 방향으로 이해하는 것을 목표로 한다.



YARN 프로젝트와 아파치 YARN 커뮤니티는 처음부터 먼 길을 걸어왔다. 점점 더 많은 애플리케이션은 YARN에서 기본적으로 실행되게 변화하고 있으므로 YARN 커뮤니티와 프로젝트는 무수한 방법으로 사용자가 데이터를 처리하게 지원하고 있다.



개인과 조직이 선택한 애플리케이션과 함께 데이터 혁명을 최대한 이용할 수 있게 하기 위해 이 책에서 얻은 지식을 활용할 수 있기를 희망한다.



- 대표 저자 아룬 머시
[알라딘에서 제공한 정보입니다.]

목차정보

1장 아파치 하둡 YARN: 간략한 역사와 배경

소개

아파치 하둡

0단계: 애드혹 클러스터 시대

1단계: 하둡 온디맨드

__HOD상에서 HDFS

__HOD의 특징과 장점

__하둡 온디맨드의 단점

2단계: 공유 컴퓨팅 클러스터의 기원

__공유 클러스터의 진화

__공유 맵리듀스 클러스터 문제

3단계: YARN의 출현

정리



2장 아파치 하둡 YARN의 빠른 설치

시작

단일 노드의 YARN 클러스터 설정 단계

__1단계: 아파치 하둡 다운로드

__2단계: JAVA_HOME의 설정

__3단계: 사용자와 그룹 생성

__4단계: 데이터와 로그 디렉터리 생성

__5단계: core-site.xml 설정

__6단계: hdfs-site.xml 설정

__7단계: mapred-site.xml 설정

__8단계: yarn-site.xml 설정

__9단계: 자바 힙 크기 수정

__10단계: HDFS 포맷

__11단계: HDFS 서비스 시작

__12단계: YARN 서비스 시작

__13단계: 웹을 이용해 실행 중인 서비스 확인

간략한 맵리듀스 예제 실행

정리



3장 아파치 하둡 YARN의 핵심 개념

맵리듀스의 한계를 넘어

__맵리듀스 패러다임

아파치 하둡 맵리듀스

__비맵리듀스 워크로드의 필요성

__확장성 해결

__개선된 이용률

__사용자 민첩성

아파치 하둡 YARN

YARN 컴포넌트

__리소스매니저

__애플리케이션마스터

__자원 모델

__리소스리퀘스트와 컨테이너

__컨테이너 명세

정리



4장 YARN 컴포넌트의 기능 개요

아키텍처 개요

리소스매니저

YARN 스케줄링 컴포넌트

__FIFO 스케줄러

__커패시티 스케줄러

__페어 스케줄러

컨테이너

노드매니저

애플리케이션마스터

YARN의 자원 모델

__클라이언트 자원 요청

__애플리케이션마스터 컨테이너 할당

__애플리케이션마스터-컨테이너 관리자 통신

애플리케이션 의존성 관리

__로컬리소스 정의

__로컬리소스 타임스탬프

__로컬리소스 유형

__로컬리소스 가시성

__로컬리소스 라이프사이클

정리



5장 아파치 하둡 YARN 설치

시작

시스템 준비

__1단계: EPEL과 pdsn 설치

__2단계: ssh 키 생성과 배포

하둡 버전 2의 스크립트 기반 설치

__JDK 옵션

__1단계: 스크립트 다운로드와 해제

__2단계: 스크립트 변수 설정

__3단계: 노드 이름 설정

__4단계: 스크립트 실행

__5단계: 설치 확인

스크립트 기반 설치 제거

파일 처리 설정

환경설정 파일 설정

__core-site.xml

__hdfs-site.xml

__mapred-site.xml

__yarn-site.xml

시작 스크립트

아파치 암바리로 하둡 설치

__암바리 기반 하둡 설치 실행

__1단계: 필요조건 확인

__2단계: 암바리 서버 설치

__3단계: 암바리 에이전트 설치와 시작

__4단계: 암바리 서버 시작

__5단계: HDP2.X 클러스터 설치

정리



6장 아파치 하둡 YARN 관리

스크립트 기반 환경설정

클러스터 상태 모니터링: 나기오스

__기본적인 하둡 서비스 모니터링

__JVM 모니터링

실시간 모니터링: 강글리아

암바리로 관리

JVM 분석

기본 YARN 관리

__YARN 관리 도구

__YARN 노드 추가 및 해제

__커패시티 스케줄러 설정

__YARN 웹 프록시

__JobHistoryServer 사용

__사용자와 사용자 그룹 매핑 갱신

__슈퍼유저 프록시 그룹 매핑의 갱신

__리소스매니저 관리를 위한 ACL 갱신

__서비스 레벨 권한 리로드

__YARN의 잡 관리

__컨테이너 메모리 설정

__컨테이너 주요 설정

__맵리듀스 프로퍼티 설정

__사용자 로그 관리

정리



7장 아파치 하둡 YARN 아키텍처 가이드

개요

리소스매니저

__리소스매니저 컴포넌트의 개요

__클라이언트와 리소스매니저의 상호 작용

__애플리케이션과 리소스매니저의 상호 작용

__노드와 리소스매니저의 상호 작용

__핵심 리소스매니저 컴포넌트

__리소스매니저의 보안 관련 컴포넌트

노드매니저

__노드매니저 컴포넌트의 개요

__노드매니저 컴포넌트

__노드매니저 보안 컴포넌트

__노드매니저의 중요 기능

애플리케이션마스터

__개요

__무결점 동작 상태

__자원의 요건

__스케줄링

__스케줄링 프로토콜과 로컬리티

__컨테이너 시작

__종료 컨테이너

__애플리케이션마스터 실패와 복구

__조정과 출력 결과 커밋

__클라이언트를 위한 정보

__보안

__애플리케이션마스터 종료의 마무리

YARN 컨테이너

__컨테이너 환경

__애플리케이션마스터와 통신

애플리케이션 작성을 위한 정리

정리



8장 YARN의 커패시티 스케줄러

커패시티 스케줄러의 소개

__멀티테넌시의 탄력성

__보안

__자원 인식

__세부적인 스케줄링

__로컬리티

__스케줄링 정책

커패시티 스케줄러 설정



계층형 큐

__주요 특징

__큐 사이의 스케줄링

__계층형 큐의 정의

큐 접근 제어

큐의 커패시티 관리

사용자 제한

예약

큐의 상태

애플리케이션의 한계

사용자 인터페이스

정리



9장 아파치 하둡 YARN의 맵리듀스

하둡 YARN 맵리듀스 예제 실행

__사용 가능한 예제 목록

__Pi 예제 실행

__웹을 사용하는 모니터 예제

__Terasort 테스트 실행

__TestDFSIO 벤치마크 실행

맵리듀스 호환성

맵리듀스 애플리케이션마스터

__애플리케이션마스터의 재시작 설정

__완료된 태스크의 복구 설정

__잡히스토리 서버

노드 커패시티 계산

셔플 서비스로 변경

기존 하둡 버전 1의 애플리케이션 실행

__org.apache.hadoop.mapred API의 바이너리 호환성

__org.apache.hadoop.mapreduce API의 소스 호환성

__커맨드라인 스크립트의 호환성

__MRv1과 초기 MRv2(0.23.x) 애플리케이션 간의 호환성

맵리듀스 버전 1의 기존 코드 실행

__YARN 기반 아파치 피그 스크립트 실행

__YARN 기반 아파치 하이브 쿼리 실행

__YARN 기반 아파치 우지 워크플로우 실행

고급 기능

__우버 잡

__플러그인이 가능한 셔플과 정렬

정리



10장 아파치 하둡 YARN 애플리케이션 예제

YARN 클라이언트

애플리케이션마스터

정리



11 장 아파치 하둡 YARN 분산 셸

YARN 분산 셸 사용

__간단한 예제

__추가적인 컨테이너 사용

__셸 인수 활용 분산 셸 예제

분산 셸 내부 구조

__애플리케이션 상수

__클라이언트

__애플리케이션마스터

__최종 컨테이너

정리



12장 아파치 하둡 YARN 프레임워크

분산 셸

하둡 맵리듀스

아파치 테즈

아파치 지라프

호야: YARN의 HBase

YARN의 드라이어드

아파치 스파크

아파치 스톰

REEF: 보존 가능한 평가기 실행 프레임워크

햄스터: 동일 클러스터에서 하둡과 MPI

정리



부록 A 추가적인 내용과 코드 다운로드

부록 B YARN 설치 스크립트

부록 C YARN 관리 스크립트

부록 D 나기오스 모듈

부록 E 자원과 추가적인 정보

부록 F HDFS 빠른 참조
[알라딘에서 제공한 정보입니다.]