이미 소장하고 있다면 판매해 보세요.
|
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 패턴 개발을 도울 수 있는 방법 부록. 블룸 필터 |
|
바야흐로 빅데이터의 시대가 도래한 듯합니다. 최근 각종 매체에서 가장 자주 언급하는 IT 키워드는 단연 ‘빅데이터’입니다. 이렇게 ‘빅데이터’가 화두인 이유는 우리가 데이터에 접근하는 방식에 근본적인 변화가 있기 때문입니다. 특히 이런 변화를 가능하게 만드는 핵심 기술 중 하나가 하둡입니다. 하둡이라는 난관을 통과하지 못하고서는 피부에 와 닿는 빅데이터 기술을 접해봤다고 하기 어렵습니다.
마침 『하둡 완벽가이드』와 같은 좋은 책들이 많이 나오고 있어 하둡을 이해하고 학습하는 데 부족함은 없으리라 생각됩니다. 하지만 하둡에 어느 정도 익숙해진 개발자 또는 분석 전문가들이 현장에서 맞닥뜨리는 어려움 중 하나는 아마도 ‘맵리듀스’에 의한 능숙한 데이터 분석일 것입니다. 몇몇 간단한 경우를 제외하고 대부분 많은 시행착오를 겪어야 하는데, 데이터 분석 방법을 ‘맵리듀스’에 끼워 맞추는 것이 일반 맵리듀스 개발자들에겐 쉽지 않기 때문입니다. 그러나 애석하게도 아직까지 고급 맵리듀스 프로그래밍을 배울만한 자료나 책이 드문 편입니다. 그렇기 때문에 이 책은 고급 맵리듀스 프로그래밍에 목말라하던 개발자들에게는 단비와 같은 존재이지 않을까 싶습니다. 빅데이터 분석은 그야말로 혼돈 속에서 보석을 찾는 지난하고 정돈되기 어려운 작업인 만큼 수 많은 경험에서 우러나오는 노하우가 중요한데, 저자는 이 노하우를 ‘패턴’으로 정리하고 적용 사례와 소스 코드를 통해 구체적으로 설명합니다. 유명한 『GoF의 디자인 패턴』처럼 맵리듀스의 패턴을 분류, 정리해 놓았기 때문에 늘 곁에 두고 참조할 수 있어 실질적인 활용이 가능합니다. 더욱이 하둡 맵리듀스에서 오해하거나 놓치기 쉬운 부분과 성능 튜닝 요소를 사례에 따라 설명하고 있어 맵리듀스를 확실하게 이해하도록 도와줍니다. 이 부분만으로도 충분히 읽을 가치가 있습니다. 아무쪼록 이 책이 국내 개발자들에게 ‘맵리듀스 디자인 패턴’이 널리 보급되는 단초가 되기를 감히 기대해 봅니다. - 이주열 ---「역자의 말」 |
|
이 책은 효과적으로 맵리듀스를 프로그래밍할 수 있는 6가지 디자인 패턴에 대해 다룬다. 이 책에서 제시한 패턴들을 활용하면 여러분이 직면한 문제의 90% 가량의 해법을 찾게 될 것이다. 빅 데이터 아키텍처를 모델링할 때의 일반적인 디자인 실수를 피하도록 명확하게 식별된 위험과 경고를 기반으로 설명한다.
지금까지 맵리듀스 프레임워크를 위한 디자인 패턴은 다양한 논문, 블로그, 잡지 등에 산재해 있어 공부하는 데 많은 시간과 노력이 들었지만, 이제는 이 책이 있어 그럴 필요가 없다. 실습 환경을 고려하여 하둡 기반으로 예제를 설명했지만 예제는 시스템에 구애받지 않는다. ·요약 패턴: 데이터를 요약하고 그룹핑하여 최상위 수준의 관점을 얻는다. ·필터링 패턴: 특정 사용자가 생성한 레코드를 찾는 것처럼 데이터의 서브셋을 찾는다. ·데이터 조직화 패턴: 타 시스템으로 작업하기 위해 또는 맵리듀스 분석을 좀 더 쉽게 만들기 위해 데이터를 재조직화한다. ·조인 패턴: 특별한 관계를 발견하기 위해 다른 데이터셋을 함께 분석한다. ·메타 패턴: 여러 가지 문제를 풀거나 동일 잡으로 몇 가지 분석을 수행하기 위해 몇몇 패턴을 조합한다. ·입출력 패턴: 데이터를 적재하거나 저장하기 위해 하둡 사용하는 방법을 커스터마이즈한다. * 하둡 1.0.3 버전에서 작성된 예제 이 책의 모든 예제는 하둡 1.0.3 버전에서 작성되었다. 맵리듀스는 요즘에 다수의 오픈 소스와 상용 시스템에서 볼 수 있는 패러다임이다. 예제를 일관성 있게 하고 따라하기 쉽게 만들기 위해서는 기준이 되는 시스템 하나를 선택해야 했다. 그래서 하둡을 선택했다. 하둡은 널리 사용되고 있는 시스템이기 때문에 타당한 선택이었다. 그렇지만 몽고DB 맵리듀스를 비롯한 다른 맵리듀스 구현체의 사용자도 여타 시스템에서 이 책의 예제를 활용할 수 있을 것이다. * 스택오버플로우 데이터베이스 사용 이 책의 처음부터 끝까지 스택오버플로우 데이터베이스를 덤프한 데이터 셋을 사용한다. 스택오버플로우는 소프트웨어 개발자가 (하둡을 포함해서) 다양한 코딩 주제에 대해서 묻고 답할 수 있는 인기 웹 사이트다. 하나의 노드 위에서 사용할 수 없을 만큼 크지 않은 적당한 크기이기 때문에 이 데이터 셋을 선택했다. 또 이 데이터 셋은 사용자명과 날짜 같은 ‘구조화된’ 항목뿐만 아니라 사람이 직접 생성한 자연어 본문을 포함한다. * 명확한 예제 소스 코드 제시 이 책에서 사용한 모든 예제는 해당 데이터 셋에 한정되는 코드가 무엇인지, 어떤 코드가 일반적이고 패턴의 일부인지를 명확하게 식별하기 위해 데이터 셋의 구문 분석 로직을 헬퍼 함수로 빼냈다. 여기서 사용한 XML은 꽤 간단하기 때문에 대개는 완전한 XML 구문 분석기 대신 자바 코드의 문자열 연산을 사용했다. 어떤 독자를 위한 책인가? 이 책은 전문가가 맵리듀스로 문제를 해결하기 위해 어떻게 생각하는지를 독자에게 알려주어 실수를 예방하는 데 목적이 있다. 그래서 중급 또는 고급 맵리듀스 개발자를 위한 책이다. 아주 초보자나 구루는 다른 책을 찾아보는 것이 좋다. 이 책은 또한 맵리듀스 패러다임에 대해 더 많은 것을 배우고자 하는 독자를 대상으로 한다. 코드 예제와 함께 맵리듀스의 기술적 측면으로 깊이 들어가고, 맵리듀스 시스템의 내부 동작에 대해 자세히 설명한다. 이는 소프트웨어 엔지니어가 맵리듀스 분석을 개발하는 데 도움이 될 것이다. 또한 패턴의 동기와 일반적인 사용 사례를 논의하는 데 꽤 많은 시간을 할애한다. 이는 하둡과 같은 시스템이 무엇을 할 수 있을지 알고 싶어하는 독자에게 흥미로운 내용이다. 모든 코드 예제가 하둡에 대해 작성되었고 많은 패턴이 하둡을 배경으로 논의되기 때문에 이 책을 최대한 활용하려면 하둡에 대한 약간의 지식을 가지고 있어야 한다. |