Top

아파치 하둡 YARN [차세대 데이터 플랫폼을 지향하는]

  • 원서명Apache Hadoop YARN: Moving beyond MapReduce and Batch Processing with Apache Hadoop 2 (ISBN 9780321934505)
  • 지은이아룬 머시, 비나드 쿠마 바빌라팔리, 더그 이들린, 조셉 니미크, 제프 마컴
  • 옮긴이안건국
  • ISBN : 9788960776388
  • 36,000원
  • 2014년 11월 28일 펴냄
  • 페이퍼백 | 424쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

이 책의 예제코드 링크

요약

아파치 하둡(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에서 실행하는 새로운 오픈소스 프레임워크

추천의 글

작가 윌리엄 깁슨이 한 유명한 말이 있다. “미래는 이미 와 있다. 단지 널리 퍼져있지 않을 뿐이다.” 웹 검색 산업이 전혀 알려지지 않았을 때 우리에게는 빅데이터의 미래에서의 삶에 대한 특권이 있었다(한편, 저주도 있었다). 무엇을 배웠을까? 우리는 모든 것을 측정할 수 있게 학습했다. 그리고 우리는 실험하는 방법도 배웠다. 우리는 비정형 데이터를 발굴해야 하는 신호를 습득했고, 데이터 과학을 통해 비즈니스 가치를 발굴해야 하는 것을 배웠다. 그리고 그 시기에 개발되고 있는 비즈니스 인텔리전스 시스템과는 근본적으로 다른 새로운 데이터 처리 플랫폼이 필요하고, 이 일을 위해 학습했다.

빅데이터의 미래는 빠르게, 거의 모든 산업에 도달하고 있다. 빅데이터의 미래는 자동차와 빌딩, 심지어 사이버 공간에서 우리가 알고 있는 웹로그뿐만 아니라 사람들이 만들어내는 로그 스트림 등 물리적 세계의 광범위한 계측을 통해 부분적으로 구동되고 있다. 아주 분명하게 디지털화된 정부의 기록과 보험 정책, 디지털 의료 기록 등과 같은 디지털 기록은 검색 엔진이 웹페이지를 크롤링하고 해석하는 것과 비슷한 정보의 수집물을 만들고 있다. 점점 더 산업에서 웹 검색 세상의 첫 번째로 개척된 도구와 기술이 통용되는 것은 놀라운 일은 아니다. 그리고 아파치 하둡(Apache Hadoop)도 당연히 그와 같은 도구다.

하지만 하둡은 발표된 지 10년 가까이 됐다. 컴퓨팅 인프라는 십 년 동안 크게 발전했다. 만약 하둡이 현대 빅데이터 세상과 밀접한 관련이 있다면, 하둡 역시 발전이 필요했다. 따라서 YARN은 하둡과 관련한 발전의 결과다.

이 책의 하둡 역사 개관에서도 설명했지만, 하둡 실재의 대부분은 단일 컴퓨팅 패러다임인 맵리듀스(MapReduce) 지원이다. 컴퓨팅 서버에서 문제가 되는 것에 더 많은 노드를 추가하는 수평적 확장은 웹 검색 산업의 웹 성장 속도를 유지하기 위한 유일한 방법이었다. 맵리듀스 패러다임은 수평적 확장에 대해 특별히 적합해, 투자 유치는 자연스러웠다.

좀 더 빠른 네트워크와 더 많은 코어, SSD 스토리지, 그리고 (특히) 더 많은 메모리, 병렬 컴퓨팅의 새로운 패러다임은 대규모 확장에 실용적으로 되고 있다. YARN은 하둡 사용자가 맵리듀스를 넘어 이동함으로써 새로운 패러다임을 채택할 수 있게 해준다. 맵리듀스를 버리는 것은 아니다. 많은 문제에 아주 적합하고 여전히 현재 발전되고 있는 다른 어떤 것보다 훌륭하게 확장되기 때문이다. 그러나 점점 맵리듀스는 YARN의 많은 도구 중 하나가 될 뿐이다.

즉, 빅데이터 시대는 이제 막 시작되고 있으며, YARN 덕분에 하둡은 모든 업계에서 빅데이터를 처리하는 데 매우 중요한 역할을 지속할 것이다.

이 모든 것을 감안할 때 YARN 프로젝트 설립자 아룬 머시(Arun Murthy)로부터 배운 것을 기쁘게 생각한다. 그리고 프로젝트 리더인 비나드 쿠마 바빌라팔리(Vinod Kumar Vavilapalli)는 더그 이들린(Doug Eadline)과 조셉 니미크(Joseph Niemiec), 제프 마컴(Jeff Markham)과 함께 YARN 프로젝트의 히스토리와 목표를 공유하고, YARN의 배포와 작동하는 방법과 애플리케이션 수준에서 YARN을 최대한 활용하는 방법에 대한 튜토리얼을 제공하기 위해 팀을 만들었다.

새로운 맵리듀스 패러다임을 넘어 하둡을 전파하기 위한 중요한 돌파구로 YARN을 강조하고, 아파치 하둡 2.0 버전에 꼭 필요한 책이다.

- 레이미 스태터(Raymie Stata) / Altiscale CEO

데이터 분석 시리즈는 하둡과 여러 하둡 에코시스템을 다루지 않으면 의미가 없다. 하둡 2는 데이터 처리가 하둡에서 어떻게 작동하는지 내부의 큰 변화를 나타내는 YARN(Yet Another Resource Negotiator)을 발표했다. YARN에서 하둡은 확장성 측면에서 데이터 처리용 애플리케이션을 만들기 위한 프레임워크로, 맵리듀스 패러다임을 넘어섰다. 맵리듀스는 YARN의 프레임워크에서 구현되는 애플리케이션일 뿐이다. 이 책은 YARN의 동작을 자세하게 다루고 맵리듀스 이외에 하둡의 확장성 측면에서 데이터를 어떻게 다루고 동작하는지 YARN을 이용한 방법을 설명한다.

어떤 사람도 이 책의 저자진보다 자료를 더 잘 만들 수는 없다. 그들은 YARN의 창시와 개발을 담당하는 호튼웍스(Hortonworks)의 팀이다.

호튼웍스 공동설립자인 아룬은 2006년부터 하둡에 공헌하고 있다. 비나드는 2007년 중반부터 아파치 하둡 프로젝트에 풀타임으로 기여하고 있다. 제프와 조셉은 호튼웍스 솔루션 엔지니어다. 더그는 인기 있는 Hadoop Fundamentals LiveLesson을 교육하는 트레이너이며, 수년간 하둡과 클러스터 시스템을 구축한 경험이 있다. 따라서 이런 저자들의 하둡과 YARN에 관련된 지식과 경험의 폭은 다른 곳에서 찾을 수 없다.

이 책은 플랫폼 진화에 필요한 다음 단계인 YARN이 왜 필요했는지 설명하기 위해 하둡과 맵리듀스의 간략한 역사를 설명한다. 설치와 관리를 통해 YARN 내부와 커패시티 스케줄러를 자세히 살펴본다. 기존 맵리듀스 애플리케이션이 현재 YARN에서 애플리케이션 프레임워크로 어떻게 실행되는지 살펴본다. 마지막으로 YARN 애플리케이션을 구현하는 방법을 학습하고 새로운 YARN 기반 프레임워크 일부를 살펴본다. 이 책은 독자가 차세대 하둡 플랫폼에 대한 포괄적인 부분을 학습하게 돕는다.

- 폴 딕스(Paul Dix) / 애디슨웨슬리(Addison-Wesley) 출판사 데이터•분석 시리즈에디터

이 책의 대상 독자

이 책은 아파치 하둡 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 커뮤니티와 프로젝트는 무수한 방법으로 사용자가 데이터를 처리하게 지원하고 있다.

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

- 대표 저자 아룬 머시

저자 소개

아룬 머시 (Arun C. Murthy)

2006년 초에 프로젝트 초기 이후부터 아파치 하둡 풀타임으로 기여했다. 오랫동안 하둡 커미터이자, 아파치 하둡 PMC(Project Management Committee) 멤버다. 이전에는 야후 하둡 맵리듀스 개발 팀의 리더이자 아키텍트였으며, 야후의 (현재 5만 대에 가까운 머신에서 실행하는) 모든 것을 위한 서비스로 하둡 맵리듀스를 제공하기 위한 기술적 수준에서 최종 담당자였다. 아파치 하둡의 개발과 채택을 신속하게 지원하는 소프트웨어 회사 호튼웍스(Hottonworks)의 설립자이자 아키텍트다. 호튼웍스는 2011년 6월에 야후의 하둡 소프트웨어 엔지니어링 팀의 핵심 아키텍트와 핵심 하둡 커미터로 구성된 회사다. 뛰어난 기술 투자자 중 하나인 야후 앤 벤치마크 캐피탈(Yahoo! and Benchmark Capital)의 투자를 받은 호튼웍스는 아파치 하둡이 빅데이터 저장과 처리, 관리, 분석에 있어 표준 플랫폼이 되기를 목표로 추구하는 회사다. 아룬은 실리콘밸리에서 살고 있다.

비나드 쿠마 바빌라팔리 (Vinod Kumar Vavilapalli)

2007년 중반부터 아파치 하둡 프로젝트에 풀타임으로 기여하고 있다. 아파치 소프트웨어 재단에서 오랫동안 하둡 기여자와 하둡 커미터, 아파치 PMC 멤버, 재단 멤버다. 호튼웍스에서 맵리듀스와 YARN에 관련된 사람이다. 5년 이상 하둡에 관련해 여전히 즐겁게 일하고 있다. 하둡 온디맨드와 하둡 0.20, 커패시티 스케줄러, 하둡 보안, 맵리듀스에 관여했으며, 아파치 하둡 YARN의 리드 개발자이면서 프로젝트 리더다. 호튼웍스에 입사하기 전에 야후에 있었으며, 수만 노드의 대규모에서 동작하는 오늘날의 하둡을 만든 그리드(Grid) 팀에서 일했다. 독서광이며, 비트(bit)를 통해 좀 더 나은 세상으로 바꾸기 위해 컴퓨터를 사용하는 데 열정적이다. 인도 Roorkee 공대에서 컴퓨터과학과 공학의 학사학위를 받았다. 실리콘밸리에서 살고 있으며, @tshooter 트위티 계정으로 만날 수 있다.

더그 이들린 (Doug Eadline, PhD)

리눅스 HPC 클러스터 혁명의 연대 저작과 개업으로 경력을 쌓기 시작했고, 현재 문서 빅데이터 분석 경력을 갖고 있다. 첫 번째 베오울프(Beowulf) 설명문을 필두로, HPC의 사실상 모든 면을 다루는 백서와 지침서 수백 가지를 쓰고 있다. 2005년, 인기 있는 ClusterMonkey.net 웹사이트를 개설하고 편집 일을 시작하기 전에는, 「클러스터월드(ClusterWorld)」 잡지의 편집장으로 헌신했으며, 「리눅스 매거진(Linux Magazine)」의 수석 HPC 편집자였다. 하드웨어나 소프트웨어 설계와 벤치마킹, 스토리지, GPU, 클라우드 컴퓨팅, 병렬 컴퓨팅을 포함한 HPC의 여러 측면에 실무 경험이 있다. 현재 HPC 산업의 저자이자 컨설턴트이며, Limulus Personal Cluster Project의 리더다. 또한 애디슨웨슬리 출판사에서 펴낸 「하둡 기초」와 「아파치 하둡 YARN 기초」 라이브레슨(LiveLessons) 비디오 강사다.

조셉 니미크 (Joseph Niemiec)

포춘 1000대 기업의 하둡 솔루션 설계에 중심을 둔 빅데이터 솔루션 엔지니어다. 조셉은 여러 YARN 애플리케이션을 만드는 데 고객과 일을 했으며, 배치 처리를 넘어 독특한 관점을 제공함으로써 고객이 YARN으로 이동할 수 있게 제공하고, 직접 YARN 개발에 일을 해왔다. 열정적인 기술자로 2001년 이후 기술 혁신에 집중하고 있다. 10대 때부터 게임 점수 최적화의 데이터 분석에 관심을 두기 시작했지만, 하둡 같은 최신 기술이나 YARN을 사용해 새로운 데이터 애플리케이션을 만드는 것 같은 새로운 기술 혁신을 고객이 흡수할 수 있게 지원하는 것으로 바뀌었다.

제프 마컴 (Jeff Markham)

오픈소스 하둡을 장려하는 회사 호튼웍스의 솔루션 엔지니어다. 이전에는 분산 데이터의 분산 애플리케이션을 구축하는 회사를 지원하는 VMWare와 레드햇, IBM과 일을 했다. 자바 애플리케이션 개발 기사를 작성했었고, 여러 컨퍼런스와 하둡 사용자 그룹에서 발표했다. 아파치 피그(Pig)와 아파치 HDFS의 기여자다.

옮긴이의 말

글로벌에서도 마찬가지겠지만, 대한민국에서 빅데이터 기반 비즈니스를 하려면 기승전하(둡)이라는 말이 생길 정도로, 하둡은 기술적 트렌드의 중심에 있다. 그리고 2012년, 하둡 서밋(Hadoop Summit)에서 하둡 버전 2가 발표됐고 정식 버전 릴리스까지는 많은 시간이 흘렀다. 그리고 드디어 2013년 10월, 알파와 베타가 아닌 정식 하둡 2 버전이 나왔다. 그 당시 많은 엔지니어들은 하둡 1.x 버전에 심취해 있었고, 테크기업이 아닌 일반기업에서는 여전히 하둡을 도입할지 고민하고 있을 찰라 2.x가 가파르게 소개가 됐다. 이후 Strata 같은 데이터 관련 컨퍼런스에서 하둡 2.x 도입의 성공 사례와 다양한 유스케이스가 소개가 됐고, 대한민국도 하둡 2.x를 기업에 도입하기 시작했다. 이후 호튼웍스와 EMC 같은 하둡 벤더 회사들도 국내 지사를 설립하면서 비즈니스 세일즈를 하게 됐다.

하둡 2.x부터의 변화는 더 많은 에코시스템이 나오는 것보다 기존 에코시스템의 안정성과 성능 위주로 발전하게 됐고, 데이터 웨어하우스를 지향함으로써 다양한 SQL on Hadoop 같은 기존 에코시스템은 더 큰 발전을 하게 됐다. 동시에 이런 핵심 에코시스템은 광의적 플랫폼에 포팅되기 시작했다. 그것이 YARN이라는 이름을 갖는 플랫폼이다. YARN은 세 가지 주요 컴포넌트가 있으며, 이들 간의 통신과 연계는 매우 복잡하다.

이 책은 호튼웍스 엔지니어들에 의해 쓰여진 책이다. 하지만 한두 장을 제외하고 다른 벤더의 하둡을 이해하는 데 문제가 전혀 없다. 앞서 말했던 것처럼 YARN은 매우 복잡한 아키텍처를 갖고 있는데, 이 책으로 해결할 수 있을 것이다. 그런데 이 책은 실용서나 예제 위주의 쿡북(Cookbook) 스타일과는 거리가 멀다. 이 책은 하둡 아키텍처 책에 가깝고 YARN 내부를 이해하는 데 도움이 되는 책이다. 저자가 4명인데 그 중 일부 저자는 글쓰는 취향 때문인지 한 문장을 3~4줄로 작성한 부분이 많고, 지나치게 장황하게 쓴 만연체가 많아 번역에 어려움이 많았다. 특히 4장, 7장, 8장은 이 책의 가장 핵심이 되는 장이며, YARN 아키텍처 관련 장으로 페이지의 양도 매우 많다. 옮긴이의 역량이 부족해 매끄럽게 번역한다고 했으나 일부 표현이 저자의 의도대로 정확하게 전달됐는지 염려스러워 미리 독자에게 양해를 구한다.

최근 하둡은 아파치 스파크(Spark)에 밀려 레거시(Legacy)처럼 돼가는 것처럼 보인다. 그러나 스파크는 데이터 퍼시스턴스의 역할로 HDFS를 사용하고 있다. 아직 스파크는 하둡의 완전체(?)가 되려면 시일이 걸릴 것으로 보인다. 예를 들어 SQL를 지원하지만 사용자 클라이언트 인터페이스는 부족하며, 스파크를 이해하려면 스칼라(Scala) 언어를 알아야 할 정도로 학습 곡선(Learning Curve)이 높다. 또한 Domain Specific 관련 배치 처리의 비용은 하둡이 덜 든다. (물론 물리적 비용이 싸지면서 역전되고 있지만, 그래서 스파크도 배워야 한다. ^^)따라서 데이터 관리와 운영 관점에서는 하둡 YARN 기반에서 운용되는 HDFS와 자원 관리, 그리고 스케줄링 부분의 이해는 여전히 필요하다.

앞으로 당분간 하둡의 기술은 지속될 것이고, 스트리밍과 실시간, 그리고 메모리기반 데이터 처리 기술이 발전할 것이다. 그런데 데이터의 영속성 측면에서 하둡은 무시할 수 없다. 아무쪼록 이 책으로 하둡 YARN의 핵심 부분을 이해하는 데 도움이 됐으면 좋겠다.

옮긴이 소개

안건국

데이터 관련 모든 것에 관심이 있지만, 최근에는 메모리 기반에서 데이터 처리와 데이터 샘플링 같은 데이터 엔지니어링에 관심이 많다. 또한 시각화가 없는 데이터 분석은 아무런 의미가 없다는 것을 깨닫고 뒤늦게 시각화에 대한 공부에 집중하고 있다. 에이콘출판사에서 펴낸 『하둡과 빅데이터 분석 실무』(2013), 『하둡 맵리듀스 프로그래밍』(2013)을 번역했다.

목차

목차
  • 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 빠른 참조

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안