책 소개
요약
하둡을 어떻게 활용할 수 있는지 학습하고, 자세한 하둡 동작방식을 자연스럽게 습득할 수 있는 책이다. 만약 하둡 기술 서적을 정독했는데, 막상 읽고 보니 내가 필요한 기술이 아니면 얼마나 억울하겠는가? 이런 면에서 이 책은 하둡을 직접 설치하는 방법부터 시작해, 다양한 데이터 처리 방법 및 실습, 심지어 저자의 비밀 노하우까지 알려주며 활용 사례 위주로 읽기 쉽게 작성됐다. 하둡 에코시스템을 직접 몸으로 부딪혀 가며 익힐 수 있는 쉽고 유용한 입문서이자 자습서이다.
이 책에서 다루는 내용
하둡과 클라우드 서비스가 있기까지의 트렌드와 배경을 학습하여 하둡의 적절한 적용 방안을 알아본다.
하둡의 설치와 설정 최적화를 연구하여 부딪힌 환경에 가장 적합한 시스템을 구축하게 된다.
하둡에서 실행할 자바와 루비 애플리케이션 개발 실습을 수행한다.
아마존 웹 서비스를 활용한 하둡 호스팅 솔루션을 경험해보고 직접 관리하는 하둡 환경과 어떤 차이점이 있는지 알아본다.
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장, ‘다음 선행지’에서는 하둡을 정리하며, 하둡과 관련된 미래 잠재적인 다른 제품과 기술을 다루는 하둡 에코시스템을 살펴본다. 마지막으로 하둡 커뮤니티에 참여하고 도움을 받는 법을 설명한다.
목차
목차
- 1장 무엇을 이야기할 것인가
- __빅데이터 처리
- __아마존 웹 서비스를 이용한 클라우드 컴퓨팅
- __정리
- 2장 하둡의 설정과 실행
- __로컬 우분투 호스트의 하둡
- __일래스틱 맵리듀스 사용하기
- __로컬 하둡과 EMR 하둡의 비교
- __정리
- 3장 맵리듀스의 이해
- __키/값 쌍
- __맵리듀스를 위한 하둡 자바 API
- __맵리듀스 프로그램 만들기
- __WordCount 동작과정을 살펴보기
- __하둡 특화된 데이터 타입들
- __입력/출력
- __정리
- 4장 맵리듀스 프로그램 개발
- __하둡에서 자바 이외의 언어 활용
- __대규모 데이터 분석
- __카운터와 상태정보, 그 외 출력
- __정리
- __쉬운, 고급, 그리고 그 사이
- 5장 고급 맵리듀스 기술
- __조인
- __그래프 알고리즘
- __언어 독립적인 자료 구조
- __정리
- 6장 하둡의 내구성
- __장애
- __정리
- 7장 클러스터 운영
- __EMR 사용자를 위한 참고 사항
- __하둡 설정 속성
- __클러스터 셋업
- __클러스터 접근 제어
- __네임노드 관리
- __HDFS 관리
- __맵리듀스 관리
- __확장
- __정리
- 8장 하이브를 써서 관계형 관점으로 데이터 바라보기
- __하이브 개요
- __하이브 셋업
- __하이브 사용
- __아마존 웹 서비스상의 하이브
- __정리
- 9장 관계형 데이터베이스와 연동
- __주요 데이터 흐름
- __MySQL 구성
- __하둡으로 데이터 불러오기
- __하둡에서 데이터 내보내기
- __AWS
- __정리
- 10장 플룸을 이용한 데이터 수집
- __AWS에 관한 노트
- __데이터, 데이터, 온 세상에 데이터.....
- __아파치 플룸 소개
- __더 큰 그림
- __정리
- 11장 다음 선행지
- __책에서 다룬 내용과 다루지 않은 내용
- __다가오는 하둡의 변화
- __다양한 하둡 배포판
- __다른 아파치 프로젝트
- __다양한 하둡 프로그래밍 방식
- __AWS 자원
- __정보의 원천
- __정리
도서 오류 신고
정오표
정오표
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 HADOOPHOME=/opt/hadoop