하둡 인 프랙티스(위키북스 오픈소스 웹 시리즈 53)
85가지 고급 예제로 배우는 실전 해법서
『하둡 인 프랙티스』은 하둡에 대한 기본적인 소개부터 데이터 이동 및 직렬화를 다루는 데이터 로지스틱스, 효과적인 데이터 처리 패턴, 데이터 사이언스, 고수준 추상화 언어를 통한 맵리듀스 활용까지 하둡과 관련된 답을 85개의 기법을 통해 찾는다. 문제/해결책 접근법을 통해 누구든 원하는 궁금증을 빠르게 찾을 수 있는 형태로 돼 있으며, 각 주제에 들어가기에 앞서 다양한 그림과 설명으로 독자가 충분히 관련 주제를 익힐 수 있게 구성돼 있다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
《하둡 인 프랙티스》는 현존하는 책 중 하둡과 관련해 가장 방대한 주제를 다루는 책이다. 이 책에서는 하둡에 대한 기본적인 소개부터 데이터 이동 및 직렬화를 다루는 데이터 로지스틱스, 효과적인 데이터 처리 패턴, 데이터 사이언스, 고수준 추상화 언어를 통한 맵리듀스 활용까지 하둡과 관련한 다양한 궁금증에 대한 답을 85개의 기법을 통해 찾는다. 이 책은 문제/해결책 접근법을 통해 누구든 원하는 궁금증을 빠르게 찾을 수 있는 형태로 돼 있으며, 각 주제에 들어가기에 앞서 다양한 그림과 설명으로 독자가 충분히 관련 주제를 익힐 수 있게 구성돼 있다.
이 책에서 소개하는 85개의 기법은 모두 실전 기법을 다루며, 현업에서 저자를 비롯한 수많은 개발자가 부딪힌 다양한 문제를 토대로 한다. 일례로 이 책에서는 데이터 불균형(data skew)을 효과적으로 해결하는 실전 기법, 캐싱을 활용한 최적화된 조인 방법, LZOP을 활용한 압축 방법, 샘플링을 활용한 효과적인 맵리듀스 파이프라인 최적화 등 실전에서 꼭 필요한 주제이지만 기존 책에서는 다루지 않는 주제를 엄선해 최고의 모범 기법과 해결책을 제시한다.
이 책을 통해 독자들은 하둡을 가장 효과적으로 활용하는 최고의 모범 기법은 물론, 다양한 상황에서 적합한 데이터 입출력 형식 및 압축 형식, 효과적인 코드 최적화 기법 및 디버깅 방법을 익힐 수 있고, 머하웃, 하이브, 피그, 크런치처럼 하둡 생태계를 구성하는 다른 프로젝트와의 연동 기법도 익힐 수 있다. 또 부록에서는 HDFS 내부에서 데이터 읽기/쓰기가 어떻게 진행되는지도 볼 수 있고, 데이터 사이언스 측면에서 빅 데이터를 분석하는 접근법에 대한 혜안도 얻을 수 있다.
하둡은 대규모 클러스터로 분산된 데이터를 조회하고 분석할 수 있게 설계된 오픈소스 맵리듀스 플랫폼이다. 특히 빅 데이터 시스템에 효과적인 하둡은 애플, 이베이, 링크드인, 야후, 페이스북 같은 기업에서 핵심적인 소프트웨어를 처리하고 있다. 하둡을 통해 개발자는 데이터를 편리하게 저장, 관리, 분석할 수 있다.
《하둡 인 프랙티스》에서는 85개의 실전 예제를 수집해 이를 문제/해결책 형태로 보여준다. 이 책에서는 데이터 인그레스/이그레스, 직렬화, LZO 압축 같은 중요한 문제에 대한 개념적 토대를 쌓을 수 있게 하는 동시에 현실적인 레시피를 제공한다. 이 책에서는 각 기법을 단계별로 살펴보고, 이를 통해 구체적인 해결책과 더불어 이 해결책에 적용된 사고 방법을 배운다. 아울러 책에서 제공하는 예제는 이해하기 쉽고, 잘 구조화돼 있는 만큼 조금만 수정해 얼마든지 필요한 곳에 바로 활용할 수도 있다.
★ 이 책에서 다루는 내용 ★
◎ 하둡 및 맵리듀스에 대한 개념적 설명
◎ 85개의 검증된 실전 기법
◎ 현실적인 문제와 현실적인 해결책
◎ 맵리듀스와 R의 연동 방법
이 책에서는 독자들이 하둡에 대해 기본적으로 알고 있다고 가정한다.
목차
목차
▣ 01장: 하둡 살펴보기
1.1 하둡이란?
1.2 하둡 실행
1.3 정리
[2부] 데이터 로지스틱스
▣ 02장: 하둡 데이터 이동
2.1 주요 인그레스 및 이그레스 고려 요소
2.2 하둡으로 데이터 옮기기
- 기법 1. 플룸을 활용한 HDFS로의 시스템 로그 발행
- 기법 2. HDFS로의 파일 자동 복사 메커니즘
- 기법 3. 우지를 활용한 정기적인 인그레스 활동 예약
- 기법 4 맵리듀스를 활용한 데이터베이스 인그레스
- 기법 5. 스쿱을 활용해 MySQL 데이터 불러오기
- 기법 6. HDFS로의 HBase 인그레스
- 기법 7. HBase를 데이터 소스로 활용하는 맵리듀
2.3 하둡 밖으로 데이터 옮기기
- 기법 8. HDFS 외부로의 파일 복사 자동화
- 기법 9. 스쿱을 활용한 MySQL로의 데이터 내보내기
- 기법 10. HBase로의 HDFS 이그레스
- 기법 11. 맵리듀스에서의 HBase 데이터 싱크 활용
2.4 장 정리
▣ 03장: 데이터 직렬화 텍스트 및 고급 데이터 형식
3.1 맵리듀스에서의 입출력 이해
3.2 자주 사용하는 직렬화 형식의 처리
- 기법 12. 맵리듀스와 XML
- 기법 13. 맵리듀스와 JSON
3.3 빅 데이터 직렬화 형식
- 기법 14. 시퀀스 파일의 활용
- 기법 15. 맵리듀스에서의 프로토콜 버퍼 연동
- 기법 16. 쓰리프트 활용
- 기법 17. 맵리듀스의 차세대 데이터 직렬화 방식
3.4 커스텀 파일 형식
기법 18. CSV용 입력 및 출력 형식 쓰기
3.5 장 정리
[3부] 빅 데이터 패턴
▣ 04장: 빅 데이터에 맵리듀스 패턴 적용하기
4.1 조인
- 기법 19. 리파티션 조인 최적화
- 기법 20. 세미조인의 구현
4.2 정렬
- 기법 21. 2차 정렬의 구현
- 기법 22. 여러 리듀서를 이용한 키 정렬
4.3 샘플링
- 기법 23. 저장소 샘플링
4.4 장 정리
▣ 05장: 빅 데이터를 위한 HDFS 스트리밍
5.1 작은 파일의 처리
- 기법 24. 애브로를 활용한 여러 개의 작은 파일 저장
5.2 압축을 활용한 효과적인 저장
- 기법 25. 데이터에 적합한 압축 코덱의 선택
- 기법 26. HDFS, 맵리듀스, 피그, 하이브에서의 압축 활용
- 기법 27. 맵리듀스, 하이브, 피그에서의 분할 가능한 LZOP 활용
5.3 장 정리
▣ 06장: 성능 문제 진단 및 튜닝
6.1 맵리듀스 및 환경의 측정
6.2 성능을 저해하는 원인의 파악
- 기법 28. 입력값의 갑작스러운 증가 여부 조사
- 기법 29. 맵사이드 데이터 불균형 문제 진단
- 기법 30. 맵 태스크 쓰루풋이 전반적으로 낮은지 여부 판단
- 기법 31. 작은 파일
- 기법 32. 분할 불가능한 파일
- 기법 33. 지나치게 적거나 많은 리듀서 개수
- 기법 35. 리듀스사이드 데이터 불균형 문제 판단
- 기법 35. 리듀스 태스크의 낮은 쓰루풋 여부 판단
- 기법 36. 느린 셔플 및 정렬
- 기법 37. 경쟁 잡과 스케줄러 병목
- 기법 38. 스택 덤프를 활용한 최적화되지 않은 사용자 코드 진단
- 기법 39. 하드웨어 장애 감지
- 기법 40. CPU 경쟁
- 기법 41. 메모리 스와핑
- 기법 42. 디스크 건강
- 기법 43. 네트워킹
6.3 시각화
- 기법 44. 태스크 실행 시간의 추출 및 시각화
6.4 튜닝
- 기법 45. 맵 및 리듀스 태스크의 프로파일링
- 기법 46. 리듀서 제거
- 기법 47. 필터 및 투영
- 기법 48. 컴바이너의 활용
- 기법 49. 비교기를 활용한 고속 정렬
- 기법 50. 불균형적 데이터 수집
- 기법 51. 리듀스 데이터 불균형 문제 최소화
6.5 장 정리
[4부] 데이터 사이언스
▣ 07장: 데이터 구조 및 알고리즘의 활용
7.1 그래프를 활용한 데이터 모델링 및 문제 해결
- 기법 52. 두 사용자 사이의 최단 거리 찾기
- 기법 53. 친구의 친구 계산
- 기법 54. 웹 그래프에서의 페이지랭크 계산
7.2 블룸필터
- 기법 55. 맵리듀스에서의 병렬적 블룸필터 생성
- 기법 56. 블룸필터를 활용한 맵리듀스 세미조인
7.3 장 정리
▣ 08장: 통계 및 그 이상을 위한 R과 하둡의 연동
8.1 R과 맵리듀스 연동 기술의 비교
8.2 R 기본
8.3 R과 스트리밍
- 기법 57. 주가의 일 평균 가격 계산
- 기법 58. 주식의 누적 이동 평균 주가 계산
8.4 Rhipe?클라이언트사이드 R 및 하둡 연동 툴
- 기법 59. Rhipe를 활용한 이동 평균 주가 계산
8.5 RHadoop?R과 하둡의 경량 클라이언트사이드 연동 툴
- 기법 60. RHadoop을 활용한 이동 평균 주가 계산
8.6 장 정리
▣ 09장: 머하웃을 활용한 예측적 분석
9.1 추천인을 활용한 제품 추천
- 기법 61. 영화 평점을 활용한 항목 기반 추천인
9.2 분류기
- 기법 62. 머하웃을 활용한 스팸 분류기 훈련 및 테스트
9.3 K-평균을 활용한 클러스터링
- 기법 63. 합성 2D 데이터셋의 K ?평균
9.4 장 정리
[5부] 코끼리 길들이기
▣ 10장: 하이브 공략하기
10.1 하이브의 기본
10.2 하이브를 활용한 데이터 분석
- 기법 64. 로그 파일 로딩
- 기법 65. UDF 및 압축 파티션 테이블 쓰기
- 기법 66. 하이브 조인 튜닝
10.3 장 정리
▣ 11장: 피그 프로그래밍 파이프라인
11.1 피그의 기본
11.2 피그를 활용한 로그 데이터 분석 및 악의적인 사용자 찾기
- 기법 67. 풍부한 스키마를 갖춘 아파치 로그 로딩
- 기법 68. 필터 및 투영을 활용한 데이터 줄이기
- 기법 69. IP 주소 그루핑 및 개수 계산
- 기법 70. 분산 캐시를 활용한 IP 위치 판단
- 기법 71. 피그와 스크립트의 결합
- 기법 72. 피그에서의 데이터 결합
- 기법 73. 튜플 정렬
- 기법 74. 시퀀스파일로의 데이터 저장
11.3 피그에서의 사용자 작업 흐름 최적화
- 기법 75. 빠르게 빅 데이터를 처리하기 위한 4단계 프로세스
11.4 성능
- 기법 76. 피그 최적화
11.5 장 정리
▣ 12장: 크런치 및 그 외 기술
12.1 크런치란?
12.2 로그에서 가장 인기 있는 URL 찾기
- 기법 77. 크런치 로그 파싱 및 기본적인 분석
12.3 조인
- 기법 78. 크런치의 리파티션 조인
12.4 캐스케이딩
12.5 장 정리
▣ 13장: 테스트 및 디버깅
13.1 테스트
- 기법 79. 맵리듀스 함수, 잡, 파이프라인의 단위 테스트
- 기법 80. LocalJobRunner를 활용한 잡 테스트
13.2 사용자 공간 문제 디버깅
- 기법 81. 태스크 로그 살펴보기
- 기법 81. 입력 값 분할에서의 문제 진단
- 기법 83. 태스크의 JVM 시작 인자 판단
- 기법 84. 디버깅 및 에러 처리
13.3 맵리듀스 주의 사항
- 기법 85. 맵리듀스 안티패턴
13.4 장 정리
▣ 부록 A: 관련 기술
A.1 하둡 1.0.x 및 0.20.x
A.2 플룸
A.3 우지
A.4 스쿱
A.5 HBase
A.6 애브로
A.7 프로토콜 버퍼
A.8 아파치 쓰리프트
A.9 스내피
A.10 LZOP
A.11 엘리펀트 버드
A.12 후프
A.13 MySQL
A.14 하이브
A.15 피그
A.16 크런치
A.17 R
A.18 RHIPE
A.19 RHadoop
A.20 머하웃
▣ 부록 B: 하둡 내장 인그레스 및 이그레스 툴
B.1 명령행
B.2 자바 API
B.3 파이썬/펄/루비에서의 쓰리프트 활용
B.4 하둡 퓨즈
B.5 네임노드 임베디드 HTTP
B.6 HDFS 프록시
B.7 후프
B.8 WebHDFS
B.9 분산 복사
B.10 WebDAV
B.11 맵리듀스
▣ 부록 C: HDFS 해부
C.1 HDFS란?
C.2 HDFS가 파일을 쓰는 방식
C.3 HDFS가 파일을 읽는 방식
▣ 부록 D: 최적화된 맵리듀스 조인 프레임워크
D.1 최적화된 리파티션 조인 프레임워크
D.2 복제 조인 프레임워크
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

