Top

[빅데이터 처리와 분석을 위한]
하둡 맵리듀스 프로그래밍

  • 원서명Hadoop MapReduce Cookbook (ISBN 9781849517287)
  • 지은이스리나스 페레라, 실리나 기나라스네
  • 옮긴이안건국, 배경숙
  • ISBN : 9788960774308
  • 35,000원
  • 2013년 05월 21일 펴냄
  • 페이퍼백 | 388쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학, 클라우드 컴퓨팅

책 소개

하둡 에코시스템을 사용해 크고 복잡한 데이터셋을 처리하는 원스톱 가이드로서, 간단한 예제를 소개하고 빅데이터 처리 분석 사례를 자세히 살펴본다. 이 책에서는 HBase와 하이브(Hive), 피그(Pig), 머하웃(Mahout) 등 하둡 에코시스템의 구성 요소를 다루는 방법을 설명한다. 그런 다음 하둡 맵리듀스 연산을 수행하기 위한 클라우드 환경을 설정하는 방법을 배우고, 실제 사례를 들어 크고 복잡한 데이터셋을 처리하는 방법을 설명한다.


[ 이 책에서 다루는 내용 ]

■ 예제를 실행하기 위해 하둡 맵리듀스와 HDFS를 설치하는 방법
■ 하둡과 HDFS를 안전하게 구성하고 관리하는 방법
■ 하둡 내부와 하둡이 요구 사항을 어떻게 적절히 확장하는지 이해
■ 쉽고 효율적으로 처리하기 위한 HBase와 하이브, 피그(Pig), 머하웃(Mahout), 너치(Nutch)의 사용 방법
■ 분석 문제의 다양한 유형을 해결하기 위한 맵리듀스 사용 방법
■ 분류와 관계 발견, 온라인 마케팅, 추천 같은 복잡한 문제 해결
■ 하둡 연산을 실행하기 위한 클라우드 환경 사용 방법


[ 이 책의 대상 독자 ]

빅데이터에 관심이 있는 사람과 하둡 프로그래머를 위한 책이다. 이 책은 하둡 기반에서 전혀 개발 경험이 없거나, 하둡과 맵리듀스에 대해 알고는 있지만 하둡과 관련해 뭔가를 시도하고 자세한 내용을 알기 원하는 자바 개발자를 위한 책이다. 또한 대부분의 하둡 작업을 원스톱으로 참조할 수 있다.


[ 이 책의 구성 ]

1장, '하둡 시작과 클러스터'에서 실행에서는 클러스터와 싱글 노드에서 하둡을 설치하고 실행하는 방법을 설명한다.

2장, '고급 HDFS'에서는 하둡 맵리듀스로 대규모 데이터를 처리할 때뿐만 아니라 맵리듀스를 사용하지 않는 사례에도 유용한 고급 HDFS 작업을 소개한다.

3장, '고급 하둡 맵리듀스 관리'에서는 하둡 설치 시 하둡의 구성과 보안 변경, 디버깅 방법을 설명한다.

4장, '복잡한 하둡 맵리듀스 애플리케이션 개발'에서는 사용자 정의의 효율적인 맵리듀스 애플리케이션을 개발하기 위한 고급 하둡 맵리듀스 기능 몇 가지를 소개한다.

5장, '하둡 에코시스템'에서는 HBase, 하이브, 피그 등 하둡과 관련된 다른 프로젝트를 소개한다.

6장, '분석'에서는 하둡을 사용해 기본적인 분석을 하는 방법을 설명한다.

7장, '검색과 색인'에서는 대규모 검색과 색인을 수행하는 아파치 하둡에서 사용할 수 있는 몇 가지 도구와 기술을 소개한다.

8장, '분류, 추천, 관계 분석'에서는 하둡을 사용해 분류와 추천, 관계 분석 등과 같은 복잡한 알고리즘을 구현하는 방법을 알아본다.

9장, '대용량 텍스트 데이터 처리'에서는 하둡과 머하웃(Mahout)를 사용해 대용량 텍스트 데이터셋을 처리하는 방법과 하둡을 사용해 데이터를 전처리하고 로딩하는 방법을 알아본다.

10장, '클라우드 환경에서 하둡 배포'에서는 아마존 일래스틱 맵리듀스(Elastic MapReduce, EMR)와 아파치 Whirr로 클라우드 인프라 환경에서 하둡 맵리듀스와 피그, 하이브, HBase 연산을 실행하는 방법을 알아본다.

저자/역자 소개

[ 저자 서문 ]

『하둡 맵리듀스 프로그래밍』은 크고 복잡한 데이터셋을 처리하는 개발자를 위한 책이다. 이 책은 간단한 방법으로 시작하지만, 하둡에 대한 깊이 있는 지식을 제공한다. 하둡을 사용해 잡을 달성하는 방법에 대한 간략한 원스톱 가이드다. 이 책에는 단계별 절차와 실제 사례, 단순하고 이해하기 쉬운 방식으로 제시한 90가지의 예제가 있으며, 아파치 소프트웨어 재단(Apache Software Foundation, http://www.apache.org)에서 개발한 소프트웨어가 이 책에 포함된 예제에 사용됐다.


[ 저자 소개 ]

스리나스 페레라 (Srinath Perera)
WSO2 사의 수석 소프트웨어 아키텍트이자 CTO로서, WSO2 플랫폼의 아키텍처 작업을 했다. 또한 스리랑카 소프트웨어 재단의 연구원으로 모라투와 대학의 컴퓨터공학과 객원 교수로 재직 중이다. 아파치 Axis2 오픈소스 프로젝트의 공동 설립자이며, 2002년부터 아파치 웹 서비스 프로젝트에 참여했다. 아파치 소프트웨어 재단과 아파치 웹 서비스 프로젝트 PMC의 멤버다. 또한 아파치의 오픈소스 프로젝트 Axis와 Axis2, Geronimo의 커미터다.
미국 인디애나 대학교 블루밍턴에서 컴퓨터과학으로 박사학위와 석사학위를 받았고, 스리랑카 모라투와 대학에서 컴퓨터과학과 공학학위를 취득했다.
많은 기술과 심사 연구 논문을 집필 중이며, 자세한 내용은 그의 웹사이트에서 찾을 수 있다. 또한 기술적인 장소에서 강연을 자주 한다.
오랫동안 대규모 분산 시스템 환경에서 일을 했다. 매일 하둡과 카산드라 같은 빅데이터 기술로 밀접하게 일을 한다. 또한 모라투와 대학에서 주로 하둡을 기반으로 하는 병렬 프로그래밍을 대학원 과목으로 가르치고 있다.

실리나 기나라스네 (Thilina Gunarathne)
인디애나 대학의 Informatics and Computing의 박사학위 예정자다. 대규모 데이터의 집약적인 연산 기술과 아파치 하둡 사용의 풍부한 경험이 있다. 현재 업무는 클라우드 환경에서 확장 가능하고 효율적인 대규모 데이터의 집약적인 연산을 하기 위한 기술 개발에 초점을 맞추고 있다.
클라우드 환경에서 효율적인 데이터 마이닝과 데이터 분석을 수행하기 위한 확장 가능한 맵리듀스 모델의 여러 가지 논문을 포함해 분산 병렬 컴퓨팅 분야에서 많은 논문과 심사 연구 논문을 발표하는데, 학계와 산업계의 단골 발표자다.
2005년부터 PMC 회원이고 커미터로 아파치 소프트웨어 재단에서 여러 오픈소스 프로젝트에 기여했다. 대학원 공부를 시작하기 전에 WSO2에서 WSO2에서 오픈소스 미들웨어 개발에 초점을 두고 수석 소프트웨어 엔지니어로 일했다. 2006년에 스리랑카 모라투와 대학에서 컴퓨터과학과 공학학위를 받았으며 2009년 인디애나 대학 블루밍턴에서 컴퓨터과학 석사학위를 취득했다. 2013년에는 분산 병렬 컴퓨팅 분야에서 박사학위를 취득할 것으로 기대된다.


[ 옮긴이의 말 ]

하둡은 이제 특정 엔지니어의 기술이 아닌, IT에 관련된 대부분 사람들이 들어 봤을 정도로 보편화되었다. 내가 하둡을 처음 전한 건, 2008년 반도체 공정 간의 수많은 데이터를 다룰 때였다. 당시 반도체 제조에서 다뤄야 할 데이터는 테스트 데이터만 해도 5테라바이트가 넘었다. 게다가 실제 데이터는 ROI 측면에 모든 데이터를 RDBMS에 저장할 수 없었기에 이때 처음 하둡을 살펴보게 됐다. 당시에는 하둡의 가능성이 이렇게 커질지 전혀 알지 못했다. 이후 2010년 말에 이르자, 클라우드 컴퓨팅 기술 확산에 따른 데이터를 다루는 기술로 하둡이 다시 각광을 받기 시작했다. 그리고 지금은 ‘빅데이터’라는 패러다임에서 늘 빠지지 않는 기술로 등장한다.
하지만 하둡에는 많은 변화가 있었고, 변화 속에 하둡 버저닝은 일관성이 보장되지 않아 여전히 어려운 기술이기도 하다. 나는 하둡 소스를 열고 분석하기 시작했고 프로젝트를 진행하면서 하둡을 더 깊이 들여다보기 시작했다. 하지만 ‘아, 이제 좀 알겠다.’는 시점에 하둡은 또 다른 진화를 했고, 계속 발전 중이며 여전히 학습이 필요하다.

팩트 출판사에서 출간된 이 책의 컨셉은 ‘Cookbook’이라는 이름처럼 예제를 따라하며 하둡을 빠르게 습득하는 것을 목표로 한다. 따라서 책의 내용은 생각만큼 심오하지 않다. 그렇다고 책의 내용이 매우 친절한 것은 아니다. 그것은 하둡의 운용과 활용이 되는 배경 때문인데, 먼저 하둡을 설치하고 설정을 수정하려면 기본적으로 리눅스와 VI 같은 편집기를 조금은 알아야 한다. 물론 몰라도 배우고 사용할 수 있지만, 모르면 학습 속도가 느려져 지칠 가능성이 크다. 또한 맵리듀스 애플리케이션을 작성해야 하기 때문에 자바나 파이썬을 조금 알고 있어야 하는 학습 곡선(Learning Curve)이 존재한다. 그러나 그만큼 학습할 가치가 충분하다. 이 책은 데이터 처리의 관점에서 하둡의 주요 에코시스템을 빠르게 실행해보고 개념을 잡을 수 있도록 구성됐다. 따라서 데이터를 처리하는 다양한 기법을 확인할 수 있고, 관심 있는 에코시스템의 컴포넌트를 선택해 좀더 깊이 학습하고 기술 내재화를 할 수 있다면 빅데이터 처리 엔지니어로서 초석을 다질 수 있을 것이라고 확신한다.

- 2013년 5월 1일 노동절에
안건국


[ 옮긴이 소개 ]

안건국
현재 텔코(Telco) 데이터 중심으로 SK C&C에서 빅데이터 프로젝트를 2년째 진행 중이다. 사내 강사로 하둡 강의를 진행했고, 빅데이터 처리 관련 기술 멘토다. 그동안 데이터웨어하우스 기반의 데이터 프레임워크, 워크플로우 엔진과 ETL툴을 개발했다. 주요 관심 분야는 데이터 분석과 관련한 머신 러닝(Machine Learning)과 통계 처리다.

배경숙
영상 처리/패턴 인식을 전공하고 영상 인식 분야에서 대부분의 경력을 쌓았다. 2010년부터 현재까지 SK C&C에서 빅데이터 프로젝트를 수행하며 맵리듀스, 머하웃, 프리겔(pregel) 등을 사용했다. 영상에 빅데이터 기술을 결합한 동영상 검색, 분류 등에 특히 관심이 많다.

목차

목차
  • 1 하둡 시작과 클러스터에서 실행
    • 소개
    • 하둡 설치
    • WordCount MapReduce 예제 작성, 패키징, 하둡 실행
    • WordCount 맵리듀스에 컴바이너 추가
    • HDFS 설정
    • HDFS 모니터링 UI
    • HDFS 커맨드라인 명령
    • 분산 클러스터 환경에서 하둡 설정
    • 분산 클러스터에서 WordCount 실행
    • 맵리듀스 모니터링 UI
  • 2 고급 HDFS
    • 소개
    • HDFS 벤치마크
    • 새로운 데이터 노드 추가
    • 데이터 노드의 해지
    • 다중 디스크/볼륨 사용과 HDFS 디스크 사용량 제한
    • HDFS 블록 크기 설정
    • 파일 복제 계수 설정
    • HDFS 자바 API 사용
    • HDFS C API 사용(libhdfs)
    • HDFS 퓨즈 마운트(Fuse-DFS)
    • HDFS에서 파일 병합
  • 3 고급 하둡 맵리듀스 관리
    • 소개
    • 클러스터 배포를 위한 하둡 구성 튜닝
    • 하둡 설치를 확인하기 위한 벤치마크 수행
    • 성능 향상을 위한 Java VM 재사용
    • 장애 허용과 투기적 실행
    • 디버깅 스크립트: 태스크 실패 분석
    • 실패율 설정과 잘못된 레코드 건너뛰기
    • 공유 사용자를 위한 하둡 클러스터: 페어 스케줄러와 캐패시터 스케줄러 사용
    • 하둡 보안: 커버로스와 통합
    • 하둡 Tool 인터페이스 사용
  • 4 복잡한 하둡 맵리듀스 애플리케이션 개발
    • 소개
    • 하둡 데이터 타입 선택
    • 사용자 정의 Writable 데이터 타입 구현
    • 사용자 정의 키 타입 구현
    • 매퍼에서 다양한 값 타입 내보내기
    • 입력 데이터 포맷에 따른 하둡 InputFormat 선택
    • 새로운 입력 데이터 포맷 추가: 사용자 정의 InputFormat 구현
    • 맵리듀스 결과 포맷팅: 하둡 OutputFormats 사용
    • 맵과 리듀스 중간 데이터 파티셔닝
    • 맵리듀스 잡의 공유 자원 배포와 분산: 하둡 DistributedCache
    • 하둡 레거시 애플리케이션 사용: 하둡 스트리밍
    • 맵리듀스 잡 사이의 의존성 추가
    • 사용자 정의 통계를 리포팅하기 위한 하둡 카운터
  • 5 하둡 에코시스템
    • 소개
    • HBase 설치
    • 자바 클라이언트 API로 데이터 랜덤 액세스
    • HBase에서 맵리듀스 실행
    • 피그 설치
    • 피그 명령어 실행
    • 피그 조인(join), 유니온, 정렬 작업
    • 하이브 설치
    • 하이브로 SQL 스타일 쿼리 실행
    • 하이브 조인 수행
    • 머하웃 설치
    • 머하웃 K-means 실행
    • K-means 결과 시각화
  • 6 분석
    • 소개
    • 맵리듀스를 이용한 간단한 분석
    • 맵리듀스를 이용한 Group-By 수행
    • 맵리듀스를 이용한 빈도 분포 계산과 정렬
    • GNU Plot을 사용한 하둡 결과 도식
    • 맵리듀스를 이용한 히스토그램 계산
    • 맵리듀스를 이용한 산점도 계산
    • 하둡으로 복잡한 데이터셋 구문 분석
    • 맵리듀스를 이용한 두 데이터셋 조인
  • 7 검색과 색인
    • 소개
    • 하둡 맵리듀스를 사용해 역색인 생성
    • 아파치 너치를 사용해 인트라 도메인의 웹 크롤링
    • 아파치 솔라를 이용한 웹 문서 색인과 검색
    • 아파치 너치에서 백엔드 데이터 저장소로 아파치 HBase 설정
    • 하둡 클러스터에서 아파치 HBase 배포
    • 하둡/HBase 클러스터를 이용해 아파치 너치로 전체 웹 크롤링
    • 색인과 검색을 위한 일래스틱서치
    • 크롤링 웹 페이지의 in-link 생성
  • 8 분류, 추천, 관계 분석
    • 소개
    • 콘텐트 기반 추천
    • 계층적 클러스터링
    • 아마존 세일즈 데이터셋 클러스터링
    • 협업 필터링 기반 추천
    • 나이브 베이즈 분류
    • 애드워즈 균형 알고리즘을 사용한 키워드 광고
  • 9 대용량 텍스트 데이터 처리
    • 소개
    • 하둡 스트리밍과 파이썬을 이용한 데이터 전처리(추출, 정제, 형식 변환)
    • 하둡 스트리밍을 이용한 데이터 중복 제거
    • Importtsv와 bulkload 도구를 사용해 아파치 HBase 데이터 저장소에 대용량 데이터셋 로드
    • 텍스트 데이터의 TF와 TF-IDF 벡터 생성
    • 텍스트 데이터 클러스터링
    • 잠재 디리클레 할당(LDA)을 사용한 주제 검색
    • 머하웃 나이브 베이스 분류기를 이용한 문서 분류
  • 10 클라우드 환경에서 하둡 배포
    • 소개
    • 아마존 일래스틱 맵리듀스(EMR)를 사용해 하둡 맵리듀스 실행
    • EMR 잡 플로우를 실행하기 위해 아마존 EC2 스팟 인스턴스를 사용해 비용 절약
    • EMR을 사용해 피그 스크립트 실행
    • EMR을 사용해 하이브 스크립트 실행
    • 커맨드라인 인터페이스를 사용해 아마존 EMR 잡 플로우 생성
    • EMR을 사용해 아마존 EC2 클라우드에 아파치 HBase 설치
    • 아마존 EMR 잡의 VM 설정을 위한 EMR의 부트스트랩 사용
    • 클라우드 환경에서 아파치 하둡 클러스터를 배포하기 위한 아파치 Whirr 사용

도서 오류 신고

도서 오류 신고

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

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

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