나에게 필요한 지식과 기술을 검색해 보세요.

Hadoop 완벽 가이드 : 클라우드 컴퓨팅 구축을 위한 실전 안내서

지은이

톰 화잇

옮긴이

심탁길, 김우현

출간일

2010.05.20

레벨

중고급

평점

4(1명)

정가

40,000

판매가

36,000

총 결제 금액

10%

36,000

적립 예정

1,800P

하둡을 통해 데이터에 대한 생각을 전환하라!

500기가바이트를 59초 만에, 100테라바이트를 단 173분 만에 정렬하는 등 하둡은 데이터 분석에 대하여 상상초월의 성능을 제공한다. 구글의 알고리즘을 구현한 하둡은 맵리듀스 기법을 통해 데이터에 대한 생각의 방식을 변화시키고, 이전에 보존시켜 두었던 그 어떤 데이터든지 활용할 수 있게 한다. 전에는 너무 오래 걸려 결과를 얻을 수 없었던 문제도 이제는 그 해답을 빠르게 얻을 수 있게 되었고, 이를 통해 새로운 통찰력도 얻을 수 있게 되었다.

하둡, 클라우드 컴퓨팅의 역사를 바꾸다!
  • 2008년 2월 - 뉴욕타임스는 1851년부터 1980년 12월까지 약 130년 분량의 신문기사 1,100만 매를 "아마존 S3"에 저장하고, 하둡을 이용하여 약 4테라바이트 크기의 데이터를 24시간 만에 변환했다. 이는, 일반적인 서버로는 약 14년이 걸리는 어마어마한 작업량이다.

  • 2008년 4월 - 하둡은 "맵리듀스로 테라바이트 데이터 정렬하기" 대회에서 전년도 우승자의 297초에 비해 단 3½ 분 수준인 209초만에 정렬하며 우승했다. 이어 2009년 5월, 야후는 하둡을 사용하여 62초 만에 1테라바이트 정렬했다.

  • 2009년 4월 - "1분 소트" 대회에서 500기가바이트를 59초에(1,400개 노드에서) 정렬하며 우승했다. 또한 100테라바이트를 173분에(3,400개 노드에서) 정렬했다.
대용량 데이터라는 주제에 관해 가장 완벽한 책!

이 책은 하둡 프로젝트의 커미터이자 핵심 설계자인 톰 화잇이 저술하였고, 하둡이라는 주제를 가장 완벽하게 다루었다. 하둡의 개념과 사용법은 물론 Last.fm, 페이스북, 랙페이스의 하둡 활용 사례를 통해 어떻게 하둡을 활용해야 하는지를 배울 수 있다.
  • 대규모 데이터셋 저장을 위해 하둡 분산파일시스템(HDFS)
  • 맵리듀스를 통한 분산 연산 작업
  • 데이터 압축, 데이터 정합성, 직렬화, 영속성을 위한 입/출력 빌딩 블록
  • 실전 맵리듀스 프로그램 유의점
  • 전용 하둡 클러스터를 설계, 구축, 운영 방법
  • 클라우드 기반의 하둡 운용
  • 대규모 데이터 처리를 위한 피그
  • 구조화된 데이터와 반-구조화된 데이터를 처리를 한 HBase
  • 분산 시스템을 구축을 위한 주키퍼
하둡 창시자의 추천사

하둡(Hadoop)은 너치(Nutch, 오픈 소스 검색 엔진)에서 시작되었다. 우리 중 일부는 오픈 소스 웹 검색 엔진(open source web search engine)을 구축하려고 시도했는데, 소수 컴퓨터에서 연산할 때조차 문제가 발생했다. 그 해법은 구글(Google)이 GFS와 맵리듀스(MapReduce)에 관한 문서를 공개하는 즉시 명확해졌다. 구글은 너치의 문제를 정확히 해결할 만한 시스템을 고안해 냈다. 그래서 개발 도중에 우리 중 두 명은 이 시스템을 너치의 일부로서 다시 구성하기 시작했다.

우리는 20대의 컴퓨터에서 너치가 힘을 발휘하지 못하는 문제를 그럭저럭 해결해 나갔지만, 곧이어 대규모 웹 문제를 위해서는 수천 대의 컴퓨터에서 운용할 필요가 있다고 판단하였고, 두 명의 개발자가 다루기에는 훨씬 더 큰 문제임이 분명해 졌다.

그 무렵, 야후(Yahoo!)에서는 이에 대해 흥미를 느끼고 있었고, 재빨리 내가 속한 팀을 합류시켰다. 그 후, 우리는 너치의 분산 처리 파트로부터 분리되었고, 그것을 하둡이라 칭하였다. 야후의 도움으로, 하둡은 곧 진정으로 웹에 적용할 만한 기술로 성장했다.

2006년 들어, 톰 화잇이 하둡에 공헌하기 시작했다. 나는 이미 그가 썼던 너치에 관한 훌륭한 기사를 통해 그를 알고 있었기 때문에 복잡한 아이디어를 명료한 글로 제시해 줄 것이라 여겼다. 나는 머지 않아 그가 그의 글을 읽는 만큼의 즐거움을 주는 소프트웨어도 또한 개발할 수 있으리라는 것을 알았다.

시작부터, 하둡에 대한 톰의 공헌은 사용자들과 프로젝트에 대한 관심 정도를 보여주었다. 대다수 오픈 소스 공헌자와는 달리, 그는 자신의 요구를 더 충족시키도록 시스템을 비트는 데에 그다지 관심을 두지 않았고, 오히려 누군가 좀 더 쉽게 사용할 수 있도록 하는 데 관심을 두었다.

초기에, 톰은 아마존(Amazon)의 EC2와 S3 서비스에서 하둡이 잘 동작하도록 하는 전문적인 기술을 가지고 있었다. 그 후에 그는 수많은 문제와 씨름하였는데, 거기에는 맵리듀스 API를 향상, 웹사이트 강화, 객체 직렬화 프레임워크(object serialization framework) 고안 등이 포함되었다. 모든 면에 있어서, 자신의 아이디어를 정확히 제시해 주었다. 톰은 곧바로 하둡의 커밋터(소스 코드의 변경 권한자) 역할을 하게 되었고, 그 후에는 하둡 프로젝트 관리 위원회(Hadoop Project Management Committee)의 일원이 되었다.

톰은 현재 하둡 개발자 커뮤니티 내에서 존경받는 고위의 인물이다. 그는 프로젝트의 많은 기술 부분에 있어서 전문가이고, 그의 특별함이 하둡을 좀 더 사용하고 이해하기 쉽게 만들고 있다. 이러한 점 때문에, 톰이 하둡에 관한 책을 쓰려고 한다는 것을 알았을 때 매우 기뻤다. 누가 그보다 더 적합할 수 있을까? 이제 여러분은 기술뿐만 아니라 상식과 명료한 토크를 완벽하게 갖춘 이로부터 하둡에 관해 배울 기회를 맞이하였다.

-더그 커팅(Doug Cutting), 하둡 창시자, 야후

저자

목차

역자서문
저자서문

1장 하둡과의 만남 
  1 데이터! 
  2 데이터 저장소와 분석 
  3 다른 시스템과의 비교 
    RDBMS 
    그리드 컴퓨팅 
    자발적 컴퓨팅(Volunteer Computing) 
  4 하둡의 역사 
  5 아파치 하둡 프로젝트 

2장 맵리듀스 
  1 기상 데이터셋 
    데이터 포맷 
  2 유닉스 도구로 데이터 분석하기 
  3 하둡으로 데이터 분석하기 
    맵과 리듀스 
    자바 맵리듀스 
  4 분산형으로 확장하기 
    데이터 흐름 
    컴바이너 함수 
    분산 맵리듀스 잡 실행하기 
  5 하둡 스트리밍 
    루비 
    파이썬 
    하둡 파이프 
    컴파일 및 실행 

3장 하둡 분산 파일시스템 
  1 HDFS 설계 
  2 HDFS 개념 
    블록 
    네임노드와 데이터노드 
  3 명령행 인터페이스 
    기본적인 파일시스템 연산 
  4 하둡 파일시스템 
    인터페이스 
  5 자바 인터페이스 
    하둡 URL로부터 데이터 읽기 
    파일시스템 API를 사용하여 데이터 읽기 
    데이터 쓰기 
    디렉터리 
    파일시스템에 질의하기 
    데이터 삭제 
  6 데이터 흐름 
    파일 읽기 해부 
    파일 쓰기 상세 
    일관성 모델 
  7 distcp 병렬 복사 
    HDFS 클러스터 균형 유지 
  8 하둡 아카이브 
    하둡 아카이브 사용하기 
    제약 사항 

4장 하둡 I/O 
  1 데이터 무결성 
    HDFS와 데이터 무결성 
    LocalFIleSystem 
    ChecksumFileSystem 
  2 압축 
    코덱 
    압축과 입력 분할 
    맵리듀스에서 압축 사용하기 
  3 직렬화 
    Writable 인터페이스 
    Writable 클래스 
    맞춤형 Writable을 구현하기 
    직렬화 프레임워크 
  4 파일 기반 데이터 구조 
    SequenceFile 
    MapFile 

5장 맵리듀스 프로그래밍 
  1 환경설정파일 API 
    리소스 결합하기 
    변수 확장 
  2 개발환경 설정하기 
    환경설정파일 관리하기 
    GenericOptionsParser, Tool, ToolRunner 
  3 유닛 테스트 작성하기 
    매퍼 
    리듀서 
  4 로컬에서 실행하기 
    로컬 잡 실행하기 
    드라이버 테스트하기 
  5 클러스터에서 실행하기
    패키징 
    잡 배포하기 
    맵리듀스 웹 UI 
    결과 얻기 
    잡 디버깅 
    원격 디버거 사용하기 
  6 잡 튜닝하기 
    태스크 프로파일하기 
  7 맵리듀스 작업 흐름 
    맵리듀스 잡으로 문제를 분해하기 
    종속적인 잡 실행 

6장 맵리듀스 작동 방법 
  1 맵리듀스 잡 실행 상세분석 
    잡 제출 
    잡 초기화 
    태스크 할당 
    태스크 실행 
    진행 상황과 상태 갱신 
    잡 완료 
  2 실패 
    태스크 실패 
    태스크트래커 실패 
    잡트래커 실패 
  3 잡 스케줄링 
    페어 스케줄러 
  4 셔플과 정렬 
    맵 과정 
    리듀스 관점 
    환경설정 튜닝 
  5 태스크 실행 
    투기적 실행 
    태스크 JVM 재사용 
    비정상 레코드 생략하기 
    태스크 실행 환경 

7장 맵리듀스 타입과 포맷 
  1 맵리듀스 타입 
    기본적인 맵리듀스 잡 
  2 입력 포맷 
    입력 스플릿과 레코드 
    텍스트 입력 
    바이너리 입력 
    다중 입력 
    데이터베이스 입력과 출력 
  3 출력 포맷 
    Text Output 
    바이너리 출력 
    Multiple Outputs 
    느린 출력 
    Database Output 

8장 맵리듀스 기능 
  1 카운터 
    내장 카운터 
    사용자 정의 자바 카운터 
    사용자 정의 스트리밍 카운터 
  2 정렬 
    준비 
    부분 정렬 
    전체 정렬 
    보조 정렬 
  3 조인 
    맵-사이드 조인 
    리듀스-사이드 조인 
  4 사이드 데이터 분배 
    잡 환경설정파일 사용 
    분산 캐시 
  5 맵리듀스 라이브러리 클래스 

9장 하둡 클러스터 설정 
  1 클러스터 명세 
    네트워크 위상 
  2 클러스터 설정 및 설치 
    자바 설치 
    하둡 사용자 생성 
    하둡 설치 
    설치 점검하기 
  3 SSH 설정 
  4 하둡 환경 설정 
    환경 설정 파일 관리 
    개발 환경 설정 
    중요한 하둡 데몬 속성 
    하둡 데몬 주소와 포트 번호 
    다른 하둡 속성들 
  5 설치 후 
  6 하둡 클러스터 벤치마킹 
    하둡 밴치마크 
    사용자 잡 
  7 하둡 클라우드 
    아마존 EC2의 하둡 

10장 하둡 관리 
  1 HDFS 
    영속적인 데이터 구조 
    안전모드 
    감사 로깅 
    도구 
  2 모니터링 
    로깅 
    매트릭스 
    자바 관리 익스텐션 
  3 관리 
    일상적인 관리 절차 
    노드 위임과 해제 
    업그레이드 

11장 피그 
  1 피그의 설치 및 실행 
    실행 유형 
    피그 프로그램 실행 
    그런트 
    피그 라틴 편집기 
  2 예제 
    예제 생성 
  3 데이터베이스와 비교 
  4 피그 라틴 
    구조 
    문장 
    표현 
    타입 
    스키마
    함수 
  5 사용자 정의 함수 
    필터 UDF 
    평가 UDF 
    로드 UDF 
  6 데이터 처리 연산자 
    데이터 로드 및 저장 
    데이터 필터링 
    데이터 분류 및 조인 
    데이터 정렬 
    데이터 결합 및 분리 
  7 실전 피그 사용 
    병렬 처리 
    파라미터 대체 

12장 HBase 
  1 HBasics 
    배경 
  2 개념 
    짧은 데이터 모델 여행 
    구현 
  3 설치 
    테스트 드라이브 
  4 클라이언트 
    자바 
    REST와 Thrift 
  5 예제 
    스키마 
    데이터 적재 
    웹 쿼리 
  6 HBase와 RDBMS 
    성공적인 서비스 
    HBase 
    사용 사례: streamy.com의 HBase 
  7 연습 
    버전 
    사랑과 증오: HBase와 HDFS 
    사용자 인터페이스 
    매트릭스 
    스키마 설계 

13장 주키퍼 
  1 주키퍼의 설치와 실행 
  2 예제 
    주키퍼를 이용한 그룹 멤버쉽 
    그룹 생성 
    그룹 가입 
    그룹 멤버 목록화 
    그룹 삭제 
  3 주키퍼 서비스 
    데이터 모델 
    연산 
    구현 
    일관성 
    세션 
  4 주키퍼로 응용프로그램 구현하기 
    환경 설정 서비스 
    탄력적인 주키퍼 응용프로그램 
    락 서비스 
    더 많은 분산 데이터 구조와 프로토콜들 
  5 주키퍼 실 서비스 
    탄력성과 성능 
    환경 설정 

14장 사례 연구 
  1 Last.fm의 하둡 사용 사례 
    Last.fm: 소셜 음악 혁명 
    Last.fm과 하둡 
    하둡으로 차트 생성하기 
    트랙 통계 프로그램 
    요약 
  2 페이스북의 하둡과 하이브 
    소개 
    페이스북과 하둡 
    가상의 사용 사례 연구 
    하이브 
    문제점과 향후의 작업 
  3 너치 검색 엔진 
    배경 
    데이터 구조 
    너치의 하둡 데이터 처리에 관한 선택 예제 
    요약 
  5 랙스페이스에서의 로그 처리 
    요구 사항/ 문제 
    간략한 역사 
    하둡 선택 
    수집과 저장소 
    로그에 대한 맵리듀스 
  6 캐스케이딩 
    필드, 튜플, 파이프 
    연산 
    탭, 스킴, 플로우 
    캐스케이딩의 실제 예제 
    유연성 
    쉐어디스에서의 하둡과 캐스케이딩 
    요약 
  7 아파치 하둡의 테라바이트 정렬 

부록A 아파치 하둡 설치하기 
  1 준비사항 
  2 설치 
  3 환경 설정 

부록B 클라우데라의 하둡 배포판 
  1 준비사항 
  2 독립 실행 모드 
  3 의사 분산 모드 
  4 완전 분산 모드 
  5 하둡 관련 패키지

부록C NCDC 기상 데이터의 준비

찾아보기

리뷰

40,000

10%

36,000