맵리듀스 내부 동작 설명 및 6가지 패턴을 설명합니다.
디자인 패턴이라는 제목처럼 저자의 맵리듀스 지식(과오에 대한 대책)을 얻을 수 있는지 맵리듀스 프레임워크 필독서라 할 만하다. (번역도 굿~)
[이 책이 제시하는 핵심 내용]
이 책은 효과적으로 맵리듀스를 프로그래밍할 수 있는 6가지 디자인 패턴에 대해 다룬다. 이 책에서 제시한 패턴들을 활용하면 여러분이 직면한 문제의 90% 가량의 해법을 찾게 될 것이다. 빅 데이터 아키텍처를 모델링할 때의 일반적인 디자인 실수를 피하도록 명확하게 식별된 위험과 경고를 기반으로 설명한다.
[이 책의 특징과 장점]
하둡 1.0.3 버전에서 작성된 예제
이 책의 모든 예제는 하둡 1.0.3 버전에서 작성되었다. 맵리듀스는 요즘에 다수의 오픈 소스와 상용 시스템에서 볼 수 있는 패러다임이다. 예제를 일관성 있게 하고 따라하기 쉽게 만들기 위해서는 기준이 되는 시스템 하나를 선택해야 했다. 그래서 하둡을 선택했다. 하둡은 널리 사용되고 있는 시스템이기 때문에 타당한 선택이었다. 그렇지만 몽고DB 맵리듀스를 비롯한 다른 맵리듀스 구현체의 사용자도 여타 시스템에서 이 책의 예제를 활용할 수 있을 것이다.
스택오버플로우 데이터베이스 사용
이 책의 처음부터 끝까지 스택오버플로우 데이터베이스를 덤프한 데이터 셋을 사용한다. 스택오버플로우는 소프트웨어 개발자가 (하둡을 포함해서) 다양한 코딩 주제에 대해서 묻고 답할 수 있는 인기 웹 사이트다. 하나의 노드 위에서 사용할 수 없을 만큼 크지 않은 적당한 크기이기 때문에 이 데이터 셋을 선택했다. 또 이 데이터 셋은 사용자명과 날짜 같은 ‘구조화된’ 항목뿐만 아니라 사람이 직접 생성한 자연어 본문을 포함한다.
명확한 예제 소스 코드 제시
이 책에서 사용한 모든 예제는 해당 데이터 셋에 한정되는 코드가 무엇인지, 어떤 코드가 일반적이고 패턴의 일부인지를 명확하게 식별하기 위해 데이터 셋의 구문 분석 로직을 헬퍼 함수로 빼냈다. 여기서 사용한 XML은 꽤 간단하기 때문에 대개는 완전한 XML 구문 분석기 대신 자바 코드의 문자열 연산을 사용했다.
[어떤 독자를 위한 책인가?]
이 책은 전문가가 맵리듀스로 문제를 해결하기 위해 어떻게 생각하는지를 독자에게 알려주어 실수를 예방하는 데 목적이 있다. 그래서 중급 또는 고급 맵리듀스 개발자를 위한 책이다. 아주 초보자나 구루는 다른 책을 찾아보는 것이 좋다.
이 책은 또한 맵리듀스 패러다임에 대해 더 많은 것을 배우고자 하는 독자를 대상으로 한다. 코드 예제와 함께 맵리듀스의 기술적 측면으로 깊이 들어가고, 맵리듀스 시스템의 내부 동작에 대해 자세히 설명한다. 이는 소프트웨어 엔지니어가 맵리듀스 분석을 개발하는 데 도움이 될 것이다. 또한 패턴의 동기와 일반적인 사용 사례를 논의하는 데 꽤 많은 시간을 할애한다. 이는 하둡과 같은 시스템이 무엇을 할 수 있을지 알고 싶어하는 독자에게 흥미로운 내용이다.
모든 코드 예제가 하둡에 대해 작성되었고 많은 패턴이 하둡을 배경으로 논의되기 때문에 이 책을 최대한 활용하려면 하둡에 대한 약간의 지식을 가지고 있어야 한다.
[도서 특징]
지금까지 맵리듀스 프레임워크를 위한 디자인 패턴은 다양한 논문, 블로그, 잡지 등에 산재해 있어 공부하는 데 많은 시간과 노력이 들었지만, 이제는 이 책이 있어 그럴 필요가 없다. 실습 환경을 고려하여 하둡 기반으로 예제를 설명했지만 예제는 시스템에 구애받지 않는다.
1장. 디자인 패턴과 맵리듀스
_1.1 디자인 패턴
_1.2 맵리듀스 역사
_1.3 맵리듀스와 하둡 복습하기
_1.4 하둡 예제 : 워드 카운트
_1.5 피그와 하이브
2장. 요약 패턴
_2.1 수치 요약
_2.1.1 패턴 설명
_2.2 역색인 요약
_2.2.1 패턴 설명
_2.3 카운터를 이용한 집계
3장. 필터링 패턴
_3.1 필터링
_3.2 블룸 필터링
_3.3 톱 텐
_3.4 구별
4장. 데이터 조직화 패턴
_4.1 계층 구조화
_4.2 파티셔닝
_4.3 비닝
_4.4 전체 순서 정렬
_4.5 셔플링
5장. 조인 패턴
_5.1 조인 복습
_5.2 리듀스 사이드 조인
_5.3 복제 조인
_5.4 복합 조인
_5.5 데카르트 곱
6장. 메타패턴
_6.1 잡 체인
_6.2 체인 폴딩
_6.3 잡 병합
7장. 입출력 패턴
_7.1 하둡의 입력과 출력 커스터마이징
_7.2 데이터 생성
_7.3 외부 소스 출력
_7.4 외부 소스 입력
_7.5 파티션 프루닝
8장. 마지막 결론과 디자인 패턴의 미래
_8.1 데이터 유형의 트렌드
_8.2 얀의 영향
_8.3 라이브러리 또는 컴포넌트로서 패턴
_8.4 패턴 개발을 도울 수 있는 방법
부록. 블룸 필터
하이브 완벽 가이드: 하둡을 이용한 SQL 기반 빅데이터 분석 도구
에드워드 카프리올로 , 딘 웜플러 , 제이슨 러더글렌
머하웃 완벽 가이드(Mahout in Action): 하둡에 딱 맞는 빅데이터를 활용한 기계학습
션 오웬 , 로빈 애닐 , 테드더닝 , 엘렌 프리드만