MapReduce作為一種分散式海量數據處理的編程框架,已經得到業界的廣泛關注。隨著Hadoop的普及,MapReduce目前已經成為海量數據處理的最基礎但也是最重要的方法之一。 《MapReduce設計模式》是一本關於設計模式的書,為讀者提供解決問題的模板或通用指南。書中主要介紹編程模式,即如何利用MapReduce框架解決一類問題,重在提供解決問題的方法和思路。作者花大量篇幅介紹各種模式的原理及實現機制,並給出相應的套用實例,讓讀者對每種模式能有更直觀的理解。 由於本書不會過多涉及底層框架及MapReduce API,所以希望讀者閱讀《MapReduce設計模式》之前,能夠對Hadoop系統有所了解,知道如何編寫MapReduce程式,並了解MapReduce程式框架的工作原理。《MapReduce設計模式》面向中高級MapReduce開發者,涵蓋了絕大部分MapReduce編程可能面對的場景,相信初學者和專家同樣可以在本書中得到一些啟示。
基本介紹
- 書名:MapReduce設計模式
- 作者:邁納 (Donald Miner) 舒克 (Adam Shook)
- 出版社:人民郵電出版社
- 頁數:213頁
- 開本:16
- 品牌:人民郵電出版社
- 外文名:MapReduce Design Patterns
- 類型:計算機與網際網路
- 出版日期:2014年9月1日
- 語種:簡體中文
- ISBN:7115360944
基本介紹,內容簡介,作者簡介,專業推薦,媒體推薦,名人推薦,圖書目錄,
基本介紹
內容簡介
到目前為止,基於MapReduce框架的設計模式散見於各種研究論文、部落格和書籍中。這本書將各種有價值的MapReduce設計模式匯集在一起,形成一本獨特的合集,可以幫讀者節省大量的時間和精力,無論讀者身處哪個領域,使用哪種程式語言,使用什麼開發框架。
書中對每一種模式都會詳細解釋其使用的上下文、可能存在的陷阱及使用的注意事項,以幫助讀者在對大數據問題架構建模時避免常見的設計錯誤。本書還提供了MapReduce的一個完整綜述,解釋其起源和實現,並說明設計模式如此重要的原因。書中的所有示例代碼都是基於Hadoop平台編寫的。
書中對每一種模式都會詳細解釋其使用的上下文、可能存在的陷阱及使用的注意事項,以幫助讀者在對大數據問題架構建模時避免常見的設計錯誤。本書還提供了MapReduce的一個完整綜述,解釋其起源和實現,並說明設計模式如此重要的原因。書中的所有示例代碼都是基於Hadoop平台編寫的。
作者簡介
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的開發及培訓課程的指導。在繁忙工作的間隙他喜歡參與相關項目,玩視頻遊戲。
Adam Shook是ClearEdge IT Solutions公司的軟體工程師,從事一些大數據技術工作,如Hadoop、Accumulo、Pig以及ZooKeeper。Shook在馬里蘭大學巴爾的摩分校(UMBC)獲得了計算機科學的學士學位,並得到了一份為遊戲工作室構建一個全新的高性能圖像引擎的工作。為了尋求新的挑戰,他在UMBC就讀研究生,主要專注的研究方向是分散式計算的相關技術。他很快找到了一份開發工作,作為美國政府承包商,從事大規模的Hadoop部署。Shook參與了Hadoop和Pig的開發及培訓課程的指導。在繁忙工作的間隙他喜歡參與相關項目,玩視頻遊戲。
專業推薦
媒體推薦
“雖然MapReduce編程模型看似簡單,但用來高效地解決實際問題還需要不同的思維方式。本書清晰地傳達了只有經過多年實踐積累才能獲得的相關經驗。”
——Tom White,Cloudera公司技術布道師,《Hadoop權威指南》作者
“真希望在我的職業生涯中早一些擁有這本書。解決我在MapReduce開發中遇到的幾乎所有問題,都要用到這本書中的設計模式。”
——Lance Byrd,Hadoop MapReduce及分散式計算技術顧問及導師
——Tom White,Cloudera公司技術布道師,《Hadoop權威指南》作者
“真希望在我的職業生涯中早一些擁有這本書。解決我在MapReduce開發中遇到的幾乎所有問題,都要用到這本書中的設計模式。”
——Lance Byrd,Hadoop MapReduce及分散式計算技術顧問及導師
名人推薦
雖然MapReduce編程模型看似簡單,但用來高效地解決實際問題還需要不同的思維方式。本書清晰地傳達了只有經過多年實踐積累才能獲得的相關經驗。”
——Tom WhiteCloudera公司技術布道師,《Hadoop權威指南》作者
“真希望在我的職業生涯中早一些擁有這本書。解決我在MapReduce開發中遇到的幾乎所有問題,都要用到這本書中的設計模式。”
——Lance ByrdHadoop MapReduce分分散式計算技術顧問及導師
——Tom WhiteCloudera公司技術布道師,《Hadoop權威指南》作者
“真希望在我的職業生涯中早一些擁有這本書。解決我在MapReduce開發中遇到的幾乎所有問題,都要用到這本書中的設計模式。”
——Lance ByrdHadoop 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
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