MapReduce 設計模式 MapReduce设计模式

邁納 (Donald Miner), 舒克 (Adam Shook)

已絕版

買這商品的人也買了...

相關主題

商品描述

 

<內容簡介>

MapReduce作為一種分佈式海量數據處理的編程框架,已經得到業界的廣泛關註。隨著Hadoop的普及,MapReduce目前已經成為海量數據處理的最基礎但也是最重要的方法之一。
《MapReduce設計模式》是一本關於設計模式的書,為讀者提供解決問題的模板或通用指南。書中主要介紹編程模式,即如何利用MapReduce框架解決一類問題,重在提供解決問題的方法和思路。作者花大量篇幅介紹各種模式的原理及實現機制,並給出相應的應用實例,讓讀者對每種模式能有更直觀的理解。
由於本書不會過多涉及底層框架及MapReduce API,所以希望讀者閱讀《MapReduce設計模式》之前,能夠對Hadoop系統有所瞭解,知道如何編寫MapReduce程序,並瞭解MapReduce程序框架的工作原理。《MapReduce設計模式》面向中高級MapReduce開發者,涵蓋了絕大部分MapReduce編程可能面對的場景,相信初學者和專家同樣可以在本書中得到一些啟示。

 

<章節目錄>

第1章設計模式與MapReduce 1
1.1設計模式2
1.2 MapReduce簡史3
1.3 MapReduce和Hadoop簡介4
1.4 Hadoop示例:單詞計數6
1.5 Pig和Hive 10
第2章概要模式12
2.1數值概要12
2.1.1模式描述12
2.1.2數值概要示例16
2.2倒排索引概要30
2.2.1模式描述30
2.2.2倒排索引示例32
2.3計數器計數34
2.3.1模式描述34
2.3.2計數器計數示例36
第3章過濾模式39
3.1過濾40
3.1.1模式描述40
3.1.2過濾示例43
3.2布隆過濾45
3.2.1模式描述45
3.2.2布隆過濾器示例48
3.3 Top10 53
3.3.1模式描述53
3.3.2 Top10示例58
3.4去重60
3.4.1模式描述60
3.4.2去重示例63
第4章數據組織模式65
4.1分層結構65
4.1.1模式描述65
4.1.2分層結構示例69
4.2分區76
4.2.1模式描述76
4.2.2分區示例79
4.3分箱81
4.3.1模式描述81
4.3.2分箱示例83
4.4全排序85
4.4.1模式描述85
4.4.2全排序示例88
4.5混排92
4.5.1模式描述92
4.5.2混排示例93
第5章連接模式96
5.1連接簡介97
5.2 reduce端連接102
5.2.1模式描述102
5.2.2 reduce端連接示例104
5.2.3使用布隆過濾器的reduce端連接110
5.3複製連接112
5.3.1模式描述112
5.3.2複製連接示例114
5.4組合連接116
5.4.1模式描述116
5.4.2組合連接示例119
5.5笛卡兒積121
5.5.1模式描述121
5.5. 2笛卡兒積示例124
第6章元模式131
6.1作業鏈131
6.1.1關於驅動程序132
6.1.2作業鏈示例133
6.1.3關於shell腳本142
6.1.4關於JobControl 145
6.2鏈折疊149
6.2. 1 ChainMapper方法和ChainReducer方法153
6.2.2鏈折疊示例153
6.3作業歸併158
作業歸併示例160
第7章輸入和輸出模式166
7.1在Hadoop中自定義輸入和輸出166
7.1.1 InputFormat 167
7.1.2 RecordReader 168
7.1.3 OutputFormat 169
7.1.4 RecordWriter 170
7.2生成數據170
7.2.1模式描述170
7.2.2生成數據示例172
7.3外部源輸出177
7.3.1模式描述177
7.3.2外部源輸出示例179
7.4外部源輸入183
7.4.1模型描述183
7.4.2外部源輸入示例185
7.5分區裁剪190
7.5.1模式描述190
7.5.2分區裁剪示例192
第8章最後的思考與設計模式的未來203
8.1數據的本質趨勢203
8.1.1圖像、音頻和視頻203
8.1.2流式數據204
8.2 YARN的影響204
8.3作為庫或者組件的模式205
8.4讀者可以幫到什麼205
附錄布隆過濾器207

 

<作者介紹>

Donald Miner目前是EMC Greenplum的解決方案架構師,為實現與使用基於Greenplum的大數據系統的用戶提供諮詢和幫助。在加入Greenplum之前,Miner博士作為承包商為美國政府部署和構建了多個規模巨大且涉及關鍵任務的Hadoop集群。他還參與了教學,在馬里蘭大學巴爾的摩分校(UMBC)講授Hadoop方面的業界前沿相關的課程以及各種人工智能課程。Miner博士在UMBC獲得了計算機科學的博士學位,讀博士期間他的研究主題為機器學習,博士論文的主題是多智能體系統。Adam Shook是ClearEdge IT Solutions公司的軟件工程師,從事一些大數據技術工作,如Hadoop、Accumulo、Pig以及ZooKeeper。Shook在馬里蘭大學巴爾的摩分校(UMBC)獲得了計算機科學的學士學位,並得到了一份為遊戲工作室構建一個全新的高性能圖像引擎的工作。為了尋求新的挑戰,他在UMBC就讀研究生,主要專註的研究方向是分佈式計算的相關技術。他很快找到了一份開發工作,作為美國政府承包商,從事大規模的Hadoop部署。Shook參與了Hadoop和Pig的開發及培訓課程的指導。在繁忙工作的間隙他喜歡參與相關項目,玩視頻遊戲。