한빛미디어
번역서
절판
[이 책이 제시하는 핵심 내용]
이 책은 효과적으로 맵리듀스를 프로그래밍할 수 있는 6가지 디자인 패턴에 대해 다룬다. 이 책에서 제시한 패턴들을 활용하면 여러분이 직면한 문제의 90% 가량의 해법을 찾게 될 것이다. 빅 데이터 아키텍처를 모델링할 때의 일반적인 디자인 실수를 피하도록 명확하게 식별된 위험과 경고를 기반으로 설명한다.
[이 책의 특징과 장점]
하둡 1.0.3 버전에서 작성된 예제
이 책의 모든 예제는 하둡 1.0.3 버전에서 작성되었다. 맵리듀스는 요즘에 다수의 오픈 소스와 상용 시스템에서 볼 수 있는 패러다임이다. 예제를 일관성 있게 하고 따라하기 쉽게 만들기 위해서는 기준이 되는 시스템 하나를 선택해야 했다. 그래서 하둡을 선택했다. 하둡은 널리 사용되고 있는 시스템이기 때문에 타당한 선택이었다. 그렇지만 몽고DB 맵리듀스를 비롯한 다른 맵리듀스 구현체의 사용자도 여타 시스템에서 이 책의 예제를 활용할 수 있을 것이다.
스택오버플로우 데이터베이스 사용
이 책의 처음부터 끝까지 스택오버플로우 데이터베이스를 덤프한 데이터 셋을 사용한다. 스택오버플로우는 소프트웨어 개발자가 (하둡을 포함해서) 다양한 코딩 주제에 대해서 묻고 답할 수 있는 인기 웹 사이트다. 하나의 노드 위에서 사용할 수 없을 만큼 크지 않은 적당한 크기이기 때문에 이 데이터 셋을 선택했다. 또 이 데이터 셋은 사용자명과 날짜 같은 ‘구조화된’ 항목뿐만 아니라 사람이 직접 생성한 자연어 본문을 포함한다.
명확한 예제 소스 코드 제시
이 책에서 사용한 모든 예제는 해당 데이터 셋에 한정되는 코드가 무엇인지, 어떤 코드가 일반적이고 패턴의 일부인지를 명확하게 식별하기 위해 데이터 셋의 구문 분석 로직을 헬퍼 함수로 빼냈다. 여기서 사용한 XML은 꽤 간단하기 때문에 대개는 완전한 XML 구문 분석기 대신 자바 코드의 문자열 연산을 사용했다.
[어떤 독자를 위한 책인가?]
이 책은 전문가가 맵리듀스로 문제를 해결하기 위해 어떻게 생각하는지를 독자에게 알려주어 실수를 예방하는 데 목적이 있다. 그래서 중급 또는 고급 맵리듀스 개발자를 위한 책이다. 아주 초보자나 구루는 다른 책을 찾아보는 것이 좋다.
이 책은 또한 맵리듀스 패러다임에 대해 더 많은 것을 배우고자 하는 독자를 대상으로 한다. 코드 예제와 함께 맵리듀스의 기술적 측면으로 깊이 들어가고, 맵리듀스 시스템의 내부 동작에 대해 자세히 설명한다. 이는 소프트웨어 엔지니어가 맵리듀스 분석을 개발하는 데 도움이 될 것이다. 또한 패턴의 동기와 일반적인 사용 사례를 논의하는 데 꽤 많은 시간을 할애한다. 이는 하둡과 같은 시스템이 무엇을 할 수 있을지 알고 싶어하는 독자에게 흥미로운 내용이다.
모든 코드 예제가 하둡에 대해 작성되었고 많은 패턴이 하둡을 배경으로 논의되기 때문에 이 책을 최대한 활용하려면 하둡에 대한 약간의 지식을 가지고 있어야 한다.
[도서 특징]
지금까지 맵리듀스 프레임워크를 위한 디자인 패턴은 다양한 논문, 블로그, 잡지 등에 산재해 있어 공부하는 데 많은 시간과 노력이 들었지만, 이제는 이 책이 있어 그럴 필요가 없다. 실습 환경을 고려하여 하둡 기반으로 예제를 설명했지만 예제는 시스템에 구애받지 않는다.