Top

Hadoop 에코시스템 [맵리듀스 프로그래밍과 하둡 클러스터 운영 실습]

  • 원서명Hadoop Beginner's Guide (ISBN 9781849517300)
  • 지은이게리 터킹튼(Garry Turkington)
  • 옮긴이송영탁, 김현준
  • ISBN : 9788960777460
  • 35,000원
  • 2015년 08월 25일 펴냄
  • 페이퍼백 | 460쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

요약

하둡을 어떻게 활용할 수 있는지 학습하고, 자세한 하둡 동작방식을 자연스럽게 습득할 수 있는 책이다. 만약 하둡 기술 서적을 정독했는데, 막상 읽고 보니 내가 필요한 기술이 아니면 얼마나 억울하겠는가? 이런 면에서 이 책은 하둡을 직접 설치하는 방법부터 시작해, 다양한 데이터 처리 방법 및 실습, 심지어 저자의 비밀 노하우까지 알려주며 활용 사례 위주로 읽기 쉽게 작성됐다. 하둡 에코시스템을 직접 몸으로 부딪혀 가며 익힐 수 있는 쉽고 유용한 입문서이자 자습서이다.

이 책에서 다루는 내용

하둡과 클라우드 서비스가 있기까지의 트렌드와 배경을 학습하여 하둡의 적절한 적용 방안을 알아본다.

하둡의 설치와 설정 최적화를 연구하여 부딪힌 환경에 가장 적합한 시스템을 구축하게 된다.

하둡에서 실행할 자바와 루비 애플리케이션 개발 실습을 수행한다.

아마존 웹 서비스를 활용한 하둡 호스팅 솔루션을 경험해보고 직접 관리하는 하둡 환경과 어떤 차이점이 있는지 알아본다.

SQL 접근을 위해 하이브(Hive)를 이용한 관계형 데이터베이스와의 연동방식을 알아보고, 스쿱(Sqoop)을 이용한 데이터 전송 방식을 살펴보게 된다.

관련 프로젝트와 툴이 하둡의 에코시스템에 어떻게 구성되는지 연구하고, 다음 선행지를 경험해본다.

이 책의 대상 독자

여러분은 하둡을 자유자재로 다루기 위해 이 책을 선택했을 것이다. 이 책은 소프트웨어 개발 경험은 있지만 하둡 및 빅데이터 기술을 접해보지 못한 개발자와 운영자를 대상으로 하고 있다.
먼저 맵리듀스 애플리케이션을 개발하고자 하는 개발자는 자바와 유닉스 계열 운영체제의 명령어에 익숙해야 한다. 가끔 루비 예제도 볼 수 있지만 하둡의 개발 언어 독립성을 보여주기 위해 사용됐으므로 루비 전문가일 필요는 없다.
하둡 아키텍트와 시스템 운영자가 되고자 하는 독자에게는 하둡 작동원리와 전체적인 아키텍처, 운영 측면에서 많은 도움을 얻을 수 있다. 아키텍트와 운영자에게 4장 ‘맵리듀스 프로그램 개발하기’와 5장 ‘고급 맵리듀스 기술’은 꼭 필요하지 않을 수도 있다.

이 책의 구성

1장, ‘무엇을 이야기할 것인가’에서는 하둡과 클라우드 컴퓨팅이 어떻게 최신 코어 기술 중 하나로 자리매김했는지 설명한다.
2장, ‘하둡의 설정과 실행’에서는 기본 로컬 하둡 클러스터 설정과 데모 잡(job)의 실행에 대해 설명한다. 비교 차원에서, 같은 잡을 아마존 하둡 서비스에서 시행해본다.
3장, ‘맵리듀스의 이해’에서는 하둡 내부를 조금 더 파헤치며 맵리듀스(MapReudce) 잡이 어떤 방식으로 실행되는지 설명한다. 또한 자바 API를 사용한 맵리듀스 애플리케이션 작성법을 설명한다.
4장, ‘맵리듀스 프로그램 개발’에서는 새로운 데이터 소스를 분석 처리시 빠른 의사결정을 돕기 위해 중간 크기의 데이터를 사용한 사례연구를 설명한다.
5장, ‘고급 맵리듀스 기술’에서는 쉽게 다가가기 힘든 하둡 처리 모델에 맵리듀스를 응용하는 몇 가지 예제를 살펴 본다.
6장, ‘하둡의 내구성’에서는 하둡의 장점으로 알려진 고가용성(high availability)과 내고장성(fault tolerance)을 자세히 알아보며, 임의적으로 데이터를 더럽히거나 프로세스를 죽이는 등의 테스트를 통해 하둡의 두 장점을 얼마나 신뢰할 수 있는지 알아 본다.
7장, ‘클러스터 운영’에서는 운영측면에서의 하둡을 살펴보는 시간을 가지며 하둡 클러스터 운영 및 관리자에게 가장 중요한 단원이 될 것이다. 몇 가지 핵심 사례를 통해 최악의 운영순간에도 대처하고 준비할 수 있도록 도움으로써 담당자가 마음 편히 잠자리에 들 수 있게 해준다.
8장, ‘하이브를 써서 관계형 관점으로 데이터 바라보기’에서는 SQL 류의 언어를 사용해 하둡에 내장되어 있는 데이터를 쿼리할 수 있게 해주는 아파치 하이브(Apache Hive)를 소개 한다.
9장, ‘관계형 데이터베이스와 연동’에서는 데이터베이스에 하둡이 어떻게 접목되는지 살펴보며, 어떻게 데이터를 대상으로 상호관계를 이루는지 살펴본다.
10장, ‘플룸을 이용한 데이터 수집’에서는 아파치 플룸(Apache Flume)을 이용해 다수의 소스로부터 데이터를 취합해 하둡과 같은 특정 목적지에 전달하는지 살펴본다.
11장, ‘다음 선행지’에서는 하둡을 정리하며, 하둡과 관련된 미래 잠재적인 다른 제품과 기술을 다루는 하둡 에코시스템을 살펴본다. 마지막으로 하둡 커뮤니티에 참여하고 도움을 받는 법을 설명한다.

저자/역자 소개

지은이의 말

이 책은 하둡에 빠르게 익숙해지는 데 도움을 주며, 이를 바탕으로 빅데이터 문제 해결을 가능하게 해줄 것이다. 오늘날은 하둡과 같은 데이터 처리 업무를 하기에 매우 흥미진진한 시기가 아닐까 한다. 한때는 대기업이나 국가 기관에서만 가능했던 다차원 분석과 대규모 데이터의 접목이 오픈소스 소프트웨어를 통해 가능해졌기 때문이다.
하지만 종잡을 수 없는 기술의 복잡성과 트렌드의 빠른 변화로, 어디서부터 시작해야 할지 망설이는 사람이 많으리라 생각한다. 이 책은 현재 어려움을 겪고 있는 입문자에게 하둡의 시작부터, 작동 원리, 실제 운영 상황에서의 활용 방법까지 친절하게 설명하도록 작성됐다.
전체적인 하둡의 핵심 사항에 대한 리뷰와 더불어, 하둡을 활용하거나 접목된 부가 기술에는 무엇이 있는지 살펴본다. 즉 단순한 하둡에 대한 이해뿐만 아니라, 여러분이 구상하고자 하는 기술에 어떻게 활용하게 될지 실질적인 팁을 주고자 한다.
빅데이터 하둡에 있어 필요한 부가 기술은 아마존 웹 서비스와 같은 클라우드 컴퓨팅이다. 클라우드 컴퓨팅과 같은 서비스를 통해 하둡 워크로드를 보관하면서 대규모 데이터 처리뿐만 아니라 물리적 장비를 추가로 구입할 필요가 없음을 시연할 계획이다.

지은이 소개

게리 터킹튼(Garry Turkington)

14년의 경험 대부분을 대규모 분산 시스템 설계와 개발에 몰두했다. 임프로브 디지털(Improve Digital) 사의 데이터 엔지니어 총괄 책임자와 리드 아키텍트로서 회사에서 생산되는 대규모 데이터를 보관, 처리, 추출하는 시스템 개발의 책임자이다. 임프로브 디지털 사에 오기 전엔 영국 아마존(Amazon.co.uk)에서 아마존의 전세계 모든 제품 카탈로그 정보를 처리하는 시스템을 개발하는 대다수의 소프트웨어 개발팀을 이끌었다. 이전에는 영국과 미국의 공공 기관에서 종사했다. 북아일랜드의 벨페스트 퀸즈 대학에서 자연과학 학사 학위와 박사 학위를 받았고, 미국 스티븐스 공과 대학에서 공학 석사 학위를 받았다.

옮긴이의 말

프로그래머들 사이에서는 ‘백문이 불여일견’ 을 살짝 바꾼 ‘백문이 불여일타’라는 말이 유명하다. ‘백 번 보는 것보다 한번 쳐 보는 것이 낫다’라는 의미이다. 특히 언어나 프레임워크를 익힐 때에 마음에 와 닿는 말이다. 깊이 있게 활용하려면 물론 기반이 되는 이론이나 내부 구조를 도구를 잘 알아야 한다. 하지만, 도구를 처음 익힐 땐 직접 몸으로 부딪혀 보고 손으로 실습하며 문제를 풀어 보아야 이 도구가 어떤 문제를 푸는 데 유용하고, 어떤 식으로 활용하는가 하는 점을 배울 수 있다. 그런 점에서 이 책은 굉장히 실용적인 접근을 한다. 각 장마다 제일 먼저 필수적인 개념을 설명하고, 이해하기 쉬운 예제, 실습을 통해 설명한 개념을 활용하는 방법을 익힐 수 있게 한다. 그 이후에 예제와 실습에 관한 내용을 상세하게 설명해 주고, 도전 과제를 제시한다. 얇고 쉬운 책이지만, 빅데이터의 개념과 하둡 파일 시스템, 맵리듀스 프로그래밍, 하둡 클러스터 설치와 운용에 관한 내용이 모두 담겨 있다.
그 뿐만이 아니라, 데이터 수집이나 기존 시스템과의 연계를 위한 하둡 생태계의 주요 오픈소스에 관한 설명도 빠뜨리지 않았다. 아마존의 클라우드 서비스를 이용하는 실습도 있으니, 클라우드에 관심 있는 독자들은 더 재미있게 공부할 수 있다.
이 책은 혼자 공부하는 자습서로 쓸 수도 있고, 분산 시스템 수업의 실습 교재로 활용해도 좋다고 생각된다. 막연하게 이름만 들어봤던 빅데이터 분석 시스템이 무엇인지 궁금하다면 이 책으로 직접 몸으로 부딪혀가며 익혀보기를 추천한다.
- 송영탁

이따금 팀에 신입사원이 들어오면 5~600페이지의 자동차 매뉴얼과 같이 두꺼운 이론 위주 하둡 기술 서적을 읽으며 끙끙 앓는다. 심지어 두꺼운 책이 부담스러운지 책의 중간 중간 깊은 내용부터 읽기 시작하며 서서히 길을 잃기 시작한다. 자동차를 운전하는 데는 자동차 매뉴얼을 정독할 필요는 없다. 첫 운전 경험을 기억해보자, 일단 핸들부터 잡고 악셀을 서서히 밟기 시작하면 차는 자연스럽게 앞으로 나간다. 나는 이러한 신입사원들에게 항상 이렇게 권한다. “이론 위주의 기술서적은 쳐다보지도 말고, 실습 위주의 실용서적을 따라가며 하둡을 설치해보고 맵리듀스 구현부터 해보세요.”
이 책을 따라가다 보면 하둡을 어떻게 활용할 수 있는지 학습할 수 있으며, 자세한 하둡 동작방식은 자연스럽게 습득하게 된다. 그다음에 기술 서적을 읽어도 늦지 않다. 만약 하둡 기술서적을 정독했는데, 막상 읽고 보니 내가 필요한 기술이 아니면 얼마나 억울하겠는가? 이런 면에서 이 책은 하둡을 직접 설치하는 방법부터 시작해, 다양한 데이터 처리 방법 및 실습, 심지어 저자의 비밀 노하우까지 활용사례 위주로 읽기 쉽게 작성됐다.
하둡의 활용사례는 사그라들 줄을 모른다. 앞으로 세계의 데이터 량이 줄어들지 않는 한, 빅데이터 기술은 하둡을 위주로 공전할 것이다. 많은 빅데이터 소프트웨어와 기술, 프로젝트가 하둡을 기준으로 진화 또는 변화를 거듭하고 있다. 하둡을 막 시작하여 빠르게 빅데이터 활용 궤도에 오르거나 활용범위를 더욱 넓히고자 하는 이들에게 반드시 추천하고 싶은 도서다.
- 김현준

옮긴이 소개

송영탁

일리노이 공대에서 컴퓨터 과학 석사 학위를 받고, 클라우드 컴퓨팅과 대용량 데이터 처리/분석 관련 업무를 해 왔다. 지금은 다음카카오에서 대용량 데이터 분석 업무를 하고 있다.

김현준

텍사스 오스틴 주립대학의 컴퓨터과학 학사 학위를 이수하고, 지금까지 하둡 파일 시스템과 맵리듀스 분석 프레임워크 최적화와 빅데이터 웨어하우스 구축, 데이터 엔지니어링 등의 다양한 빅데이터 업무를 경험했다. 현재는 텍사스 오스틴에 위치한 삼성 반도체에서 빅데이터 시스템 엔지니어로 종사하고 있다. 에이콘출판사에서 출간한 『하둡 맵리듀스 최적화와 튜닝』(2014)을 번역했다.

목차

목차
  • 1장 무엇을 이야기할 것인가
  • __빅데이터 처리
  • __아마존 웹 서비스를 이용한 클라우드 컴퓨팅
  • __정리

  • 2장 하둡의 설정과 실행
  • __로컬 우분투 호스트의 하둡
  • __일래스틱 맵리듀스 사용하기
  • __로컬 하둡과 EMR 하둡의 비교
  • __정리

  • 3장 맵리듀스의 이해
  • __키/값 쌍
  • __맵리듀스를 위한 하둡 자바 API
  • __맵리듀스 프로그램 만들기
  • __WordCount 동작과정을 살펴보기
  • __하둡 특화된 데이터 타입들
  • __입력/출력
  • __정리

  • 4장 맵리듀스 프로그램 개발
  • __하둡에서 자바 이외의 언어 활용
  • __대규모 데이터 분석
  • __카운터와 상태정보, 그 외 출력
  • __정리
  • __쉬운, 고급, 그리고 그 사이

  • 5장 고급 맵리듀스 기술
  • __조인
  • __그래프 알고리즘
  • __언어 독립적인 자료 구조
  • __정리

  • 6장 하둡의 내구성
  • __장애
  • __정리

  • 7장 클러스터 운영
  • __EMR 사용자를 위한 참고 사항
  • __하둡 설정 속성
  • __클러스터 셋업
  • __클러스터 접근 제어
  • __네임노드 관리
  • __HDFS 관리
  • __맵리듀스 관리
  • __확장
  • __정리

  • 8장 하이브를 써서 관계형 관점으로 데이터 바라보기
  • __하이브 개요
  • __하이브 셋업
  • __하이브 사용
  • __아마존 웹 서비스상의 하이브
  • __정리

  • 9장 관계형 데이터베이스와 연동
  • __주요 데이터 흐름
  • __MySQL 구성
  • __하둡으로 데이터 불러오기
  • __하둡에서 데이터 내보내기
  • __AWS
  • __정리

  • 10장 플룸을 이용한 데이터 수집
  • __AWS에 관한 노트
  • __데이터, 데이터, 온 세상에 데이터.....
  • __아파치 플룸 소개
  • __더 큰 그림
  • __정리

  • 11장 다음 선행지
  • __책에서 다룬 내용과 다루지 않은 내용
  • __다가오는 하둡의 변화
  • __다양한 하둡 배포판
  • __다른 아파치 프로젝트
  • __다양한 하둡 프로그래밍 방식
  • __AWS 자원
  • __정보의 원천
  • __정리

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

2015.10.27 수정사항

[p.426: 3행]
플룸은 로드 데이터를 처리하기 위해
->
플룸은 로그 데이터를 처리하기 위해

2016. 5. 9 수정사항

[p.61 아래에서 15행]
$ Hadoop jar hadoop/hadoop-examples-1.0.4.jar pi 4 1000
->
$ hadoop jar hadoop/hadoop-examples-1.0.4.jar pi 4 1000

2016. 5. 10 수정사항

[p.59: 9행]
$ export HADOOPHOME=/usr/local/hadoop
->
$ export HADOOP
HOME=/opt/hadoop