• 시작하세요! 하둡 프로그래밍 (개정2판)
  • 빅데이터 분석을 위한 하둡 기초부터 YARN까지

  • 정재화 지음

  • 데이터베이스 & 빅데이터 시리즈_013
  • ISBN: 9791158390389
  • 42,000원 | 2016년 05월 13일 발행 | 760쪽



하둡으로 대용량 데이터를 처리하려는 자바 개발자를 위한 실무형 입문서!

빅 데이터의 핵심 플랫폼인 하둡은 대규모 데이터의 분산 처리를 위한 오픈소스 프레임워크다. 더그 커팅이 구글의 논문을 바탕으로 만든 하둡은 초기에는 검색 엔진에서 사용하기 위한 기술로 개발됐지만 지금은 전자 상거래, 포털, 게임, 학술 자료, 의료 정보 등 다양한 분야에서 사용되고 있다. 이 책은 하둡을 처음 시작하거나 이미 하둡을 사용해본 적이 있는 개발자를 대상으로 하며, 하둡의 기본 원리부터 실무 응용까지 초보자의 입장을 배려해서 친절하고 상세하게 설명한다.

★ 이 책에서 다루는 내용 ★

  • 리눅스, 아마존 웹 서비스(AWS) 환경에서의 하둡 설치
  • HDFS와 맵리듀스의 구조 및 활용
  • 맵리듀스 튜닝, 하둡 클러스터 운영
  • 하둡2의 구조 및 활용
  • YARN의 상세 아키텍처 및 클러스터 운영
  • 헤테로지니어스 스토리지 및 HDFS 롤링 업그레이드
  • 하둡 에코시스템: 하이브, 스쿱, 타조
  • 네이버 및 아프리카TV의 하둡 적용 사례

 

추천사

"엔터프라이즈 진영에 들어선 하둡과 관련된 최근의 다양한 기술과 기능까지 업그레이드하여 소개함으로써 관련 개발자들에게 더욱 필요한 필독서가 되리라 믿어 의심치 않습니다."

-- 그루터 권영길 대표이사

"Hadoop2 와 SQL on Hadoop에 대한 전반적인 내용을 빠르게 이해하고자 하는 분들에게도 크게 도움이 될 것이다."

-- 줌인터넷 김우승 연구소장

"나 스스로도 이 책을 통해서 빅데이터 플랫폼들의 변화를 배운다."

-- 테크수다 도안구 대표

이 책은 하둡의 설치부터 핵심 구성 요소인 HDFS와 맵리듀스의 동작 원리, 그리고 다양한 실용적인 예제를 포함하고 있어 하둡 프로그래밍을 손쉽게 시작할 수 있다. 그리고 하둡 클러스터를 운영하는 데 필수적인 관리 방법과 하둡 스트리밍, 스케줄러와 같은 부가 기능의 활용법 등이 담겨 있다. 또한 2013년 10월에 공식 릴리스된 하둡2의 구조와 하둡2의 핵심 컴포넌트인 YARN의 동작 원리와 적용 방법에 대해서도 상세히 설명한다.

리눅스 서버 구성이 어려운 독자를 위해 이 책에서는 아마존 웹 서비스(AWS)에서 하둡을 설치하는 방법까지 소개하고 있으며, 기존 데이터 분석가들도 손쉽게 하둡에 저장된 데이터를 활용할 수 있게 하이브, 스쿱, 타조의 활용법도 다룬다. 마지막으로 하둡을 실제 서비스에 도입하려는 독자에게 통찰력을 주고자 다양한 하둡 적용 사례를 소개한다.

이 책은 초판에 비해 HDFS와 맵리듀스에 대한 상세한 설명이 추가됐으며, 맵리듀스 튜닝과 하둡 클러스터 운영을 위한 노하우도 보강됐다. 또한 HDFS에서 SSD, 메모리 등 다양한 스토리지를 효율적으로 사용하기 위한 헤테로지니어스 스토리지 기능과 YARN의 리소스 스케줄링을 효과적으로 관리할 수 있는 프리엠션 기능과 YARN의 최신 기능 중 하나인 타임라인 서비스를 소개한다.

정재화

지난 10여년 동안 SI, 대용량 분석 인프라, 웹 퍼블리싱 등 다양한 프로젝트를 경험해왔다. 현재 그루터에서 아파치 오픈 소스 프로젝트인 Tajo 개발 및 빅데이터 시스템 구축 업무를 담당하고 있다. 오픈소스 컨트리뷰션을 좋아하며, 개인 블로그(http://blrunner.com)를 통해 빅데이터 플랫폼에 관한 지식들을 공유하고 있다.

  • [1부] 하둡 기초
    • ▣ 01. 하둡 살펴보기
      • 1.1 빅데이터의 시대
      • 1.2 하둡이란?
      • 1.3 하둡 에코시스템
      • 1.4 하둡에 대한 오해
      • 1.5 하둡의 과제
      • 1.6 하둡 배포판
    •  
    • ▣ 02. 하둡 개발 준비
      • 2.1 실행 모드 결정
      • 2.2 리눅스 서버 준비
      • 2.3 하둡 다운로드
      • 2.4 하둡 실행 계정 생성
      • 2.5 호스트 파일 수정
      • 2.6 인코딩 방식 설정
      • 2.7 자바 설치
      • 2.8 SSH 설정
      • 2.9 하둡 압축 파일 풀기
      • 2.10 하둡 환경설정 파일 수정
      • 2.11 하둡 실행
      • 2.12 예제 실행
    •  
    • ▣ 03. 하둡 분산 파일 시스템
      • 3.1 HDFS 기초
      • 3.2 HDFS 아키텍처
      • 3.3 HDFS 명령어
      • 3.4 클러스터 웹 인터페이스
      • 3.5 HDFS 입출력 예제
    •  
    • ▣ 04. 맵리듀스 시작하기
      • 4.1 맵리듀스의 개념
      • 4.2 맵리듀스 아키텍처
      • 4.3 WordCount 만들기
    •  
  • [02부] 맵리듀스 애플리케이션 개발
    • ▣ 05. 맵리듀스 기초 다지기
      • 5.1 맵리듀스 잡의 실행 단계
      • 5.2 분석용 데이터 준비
      • 5.3 항공 출발 지연 데이터 분석
      • 5.4 항공 도착 지연 데이터 분석
      • 5.5 사용자 정의 옵션 사용
      • 5.6 카운터 사용
      • 5.7 다수의 파일 출력
      • 5.8 체인
    •  
    • ▣ 06. 정렬
      • 6.1 보조 정렬
      • 6.2 부분 정렬
      • 6.3 전체 정렬
    •  
    • ▣ 07. 조인
      • 7.1 조인 데이터 준비
      • 7.2 맵 사이드 조인
      • 7.3 리듀스 사이드 조인
    •  
  • [03부] 하둡 운영 및 활용
    • ▣ 08. 맵리듀스 튜닝
      • 8.1 셔플 튜닝
      • 8.2 콤바이너 클래스 적용
      • 8.3 맵 출력 데이터 압축
      • 8.4 DFS 블록 크기 수정
      • 8.5 JVM 재사용
      • 8.6 투기적인 잡 실행
      • 8.7 압축 코덱 선택
    •  
    • ▣ 09. 하둡 운영
      • 9.1 클러스터 계획
      • 9.2 네임노드 HA 구성
      • 9.3 파일 시스템 상태 확인
      • 9.4 밸런서
      • 9.5 HDFS 어드민 명령어 사용
      • 9.6 데이터 저장 공간 관리
      • 9.7 데이터노드 제거
      • 9.8 데이터노드 추가
      • 9.9 네임노드 장애 복구
      • 9.10 데이터노드 장애 복구
      • 9.11 셸 스크립트를 이용한 배포 관리
      • 9.12 리눅스 서버 설정
    •  
    • ▣ 10. 하둡 부가기능 활용
      • 10.1 하둡 스트리밍
      • 10.2 잡 스케줄러
      • 10.3 MR유닛
    •  
    • ▣ 11. 클라우드 환경에서의 하둡 실행
      • 11.1 아마존 웹 서비스(AWS) 소개
      • 11.2 AWS 가입
      • 11.3 EC2 하둡 설정
      • 11.4 S3 설정
      • 11.5 EMR 사용
    •  
  • [04부] 하둡2와의 만남
    • ▣ 12. 하둡2 소개
      • 12.1 하둡2의 등장 배경
      • 12.2 하둡2 특징
      • 12.3 얀
      • 12.4 네임노드 HA
      • 12.5 HDFS 페더레이션
      • 12.6 HDFS 스냅샷
      • 12.7 쇼트 서킷 조회
      • 12.8 헤테로지니어스 스토리지
    •  
    • ▣ 13. 하둡2 설치
      • 13.1 프로토콜 버퍼 설치
      • 13.2 하둡2 다운로드
      • 13.3 가상 분산 모드 설치
      • 13.4 네임노드 HA 설치
      • 13.5 하둡2 빌드
    •  
    • ▣ 14. 얀 애플리케이션 개발
      • 14.1 예제 애플리케이션 소개
      • 14.2 클라이언트 구현
      • 14.3 애플리케이션마스터 구현
      • 14.4 애플리케이션 구현
      • 14.5 애플리케이션 실행
    •  
    • ▣ 15. 얀 아키텍처의 이해
      • 15.1 얀 작업 흐름
      • 15.2 얀 단계별 동작 방식
      • 15.3 보조서비스
      • 15.4 프리엠션
      • 15.5 타임라인 서비스
      • 15.6 얀 이벤트 처리 방식
      • 15.7 아키텍처 심화 학습
    •  
    • ▣ 16. 얀 클러스터 운영
      • 16.1 얀 명령어
      • 16.2 포트 설정
      • 16.3 맵리듀스 설정
      • 16.4 얀 스케줄러 설정
      • 16.5 노드매니저 추가 및 제거
      • 16.6 리소스매니저 HA 구성
    •  
  • [05부] 하둡 에코시스템
    • ▣ 17. 하이브
      • 17.1 하이브 아키텍처
      • 17.2 하이브 설치
      • 17.3 하이브QL
      • 17.4 파티션 테이블
      • 17.5 데이터 정렬
      • 17.6 데이터 저장 포맷
    •  
    • ▣ 18. 스쿱
      • 18.1 스쿱 아키텍처
      • 18.2 스쿱 설치
      • 18.3 TPC-H 데이터 구성
      • 18.4 데이터 임포트
      • 18.5 데이터 익스포트
    •  
    • ▣ 19. 타조
      • 19.1 SQL-온-하둡이란?
      • 19.2 SQL-온-하둡 분류 기준
      • 19.3 타조란?
      • 19.4 타조 설치
      • 19.5 항공 운항 통계 데이터 분석
      • 19.6 파일 포맷
      • 19.7 하이브 연동
    •  
  • [06부] 하둡 적용 사례
    • ▣ 20. 하둡 적용 사례
      • 20.1 네이버: 하둡과 몽고디비를 이용한 로그 분석 시스템
      • 20.2 아프리카TV의 추천 시스템 구축 사례
      • 20.3 타조를 이용한 코호트 분석
    •  
  • [부록]
    • ▣ A. 하둡 개발 환경 설정
      • A.1 이클립스
      • A.2 메이븐
      • A.3 Git
    •  
    • ▣ B. HDFS 롤링 업그레이드
      • B.1 HDFS 롤링 업그레이드란?
      • B.2 HDFS 롤링 업그레이드 실행하기
      • B.3 HDFS 업그레이드 복원
    •  
    • ▣ C. 용어 설명
    •  
    • ▣ D. 참고문헌
  • 89쪽, 15번째 줄

    로컬 파일 시스템으로 파일이 복사된 후 소스 경로의

    -->

    목적지 경로로 파일이 복사된 후 로컬 파일 시스템의

  • 89쪽, 18번째 줄

    ./bin/hadoop –moveFromLocal [소스 디렉터리|파일 …] [로컬 디렉터리|파일]
    

    -->

    ./bin/hadoop –moveFromLocal [로컬 디렉터리|파일 …] [목적지 디렉터리|파일]
    

예제코드 관련 깃허브 페이지

하둡 예제 파일
YARN 예제 파일

관련 글