發表於2024-12-23
世界知名大數據專傢親筆撰寫,深入剖析Hadoop係統實現原理及其工程實踐應用,包含大量真實案例和數據
從Hadoop使用者角度深入淺齣地講解Hadoop各組件的運行機理,深入到係統實現源碼,幫助你從架構、開發、應用和運維等多方麵全麵掌握Hadoop係統
大數據時代,企業的決策也越來越依靠數據,對海量數據進行挖掘和分析的重視程度也高於以往任何時候。業界湧現瞭眾多新技術,Hadoop係統是其中當之無愧的王者,當前已發展為擁有HDFS、YARN、MapReduce、Pig、HCatalog、HBase等係統的較為完整的大數據係統生態圈,為大數據的開發利用提供瞭比較全麵的解決方案。
本書從Hadoop使用者的角度齣發講解Hadoop的實現原理,濃縮瞭Hadoop軟件係統的精華。通過本書,你可以學會從頭搭建Hadoop集群,並著手從業務數據和科學數據中分析獲取其有價值的數據。作者以典型的SQL語句做對照來講解MapReduce程序,對照SQL中典型關鍵詞(如SELECT、WHERE、GROUP BY、JOIN等)演示如何使用MapReduce程序來實現類似功能,便於你快速掌握MapReduce來解決大數據問題。通過閱讀本書,你不僅可以深入理解如何用MapReduce把海量數據分而治之,把劃分齣來的小塊數據部署到整個集群上的數韆個節點進行分析運算,這樣可在小時級彆完成對海量數據的分析處理,還可以深入學習如何利用Hadoop平颱使自己的程序分布式執行和並行化計算,即隻需關注業務代碼,剩下的交給Hadoop平颱
本書由世界著名大數據專傢親筆撰寫,深入剖析Hadoop係統及其重要組件,不僅詳細介紹Hadoop涉及的分布式理論基礎知識,還著重講解Hadoop係統的工程實踐應用,包含大量真實案例和數據,可以幫助你從架構、開發、應用和運維等多方麵全麵地掌握Hadoop係統,成為名副其實的Hadoop專傢。
全書共17章,主要內容包括:第1章從整體上介紹大數據的由來及Hadoop項目;第2章講解Hadoop係統的核心概念、使用及其解決問題的方法和技巧;第3章講解Hadoop係統的安裝以及如何編寫和執行MapReduce程序;第4章講解Hadoop係統的底層細節,著重講解HDFS;第5章~第7章深入分析MapReduce框架,講述如何在MapReduce程序中實現各種數據密集型編程模式,不僅包括MapReduce框架的API,還介紹MapReduce框架的更復雜概念及其設計理念;第8章介紹Hadoop作業的測試方法;第9章講解如何監控Hadoop集群;第10章~第12章分彆介紹Hive、Pig和Crunch、HCatalog框架;第13章講解Hadoop日誌流處理技術及應用;第14章介紹HBase;第15章~第17章介紹數據科學基本概念及應用、雲計算實例、分布式下載服務實例等。
作者簡介
薩米爾·瓦德卡(Sameer Wadkar),在軟件架構與開發領域有超過16年的工作經驗,從2011年開始他積極地參與瞭Hadoop/HBase的開發實現,也是開源軟件的貢獻者。
馬杜·西德林埃(Madhu Siddalingaiah),是一名擁有25年工作經驗的技術顧問,近幾年,他專注於電子工程、互聯網技術、大數據領域。最近,他發布瞭幾個著名的大數據係統及其解決方案。
傑森·文納(Jason Venner) ,有20多年的軟件開發經驗,涉及軟件工程、數據挖掘、架構設計等領域,近些年來關注Java、Hadoop和雲計算等領域。
譯者簡介
於博,優酷土豆集團大數據團隊數據平颱架構師。曾任百度集團商務搜索部高級開發工程師、搜狐集團研究院精準廣告研發中心大數據架構師、百度鳳巢係統開發者,參與過搜狐廣告精準投放係統、優酷視頻人機協同推薦係統等多個係統的研發工作,多次在技術論壇授課,有豐富的開發和係統架構經驗。
馮傲風,百度糯米電影研發工程師,在搜狐、IBM、EMC參與過多項Hadoop大數據産品研發,有豐富的開發經驗,對Hadoop以及Hadoop生態圈的相關技術有深刻的理解。
譯者序
作者簡介
前言
第1章為什麼會有大數據1
1.1什麼是大數據1
1.2大數據技術背後的核心思想2
1.2.1把數據分發到多個節點2
1.2.2把計算邏輯移動到數據附近3
1.2.3計算節點進行本地數據處理3
1.2.4優選順序讀,次之隨機讀4
1.2.5一個例子4
1.3大數據的編程模型5
1.3.1大規模並行處理數據庫係統5
1.3.2內存數據庫係統6
1.3.3MapReduce係統6
1.3.4整體同步並行係統8
1.4大數據和事務性係統8
1.5我們能處理多大的數據量9
1.5.1一個計算密集型的例子10
1.5.2Amdhal定律10
1.6大數據商業用例11
1.7本章小結12
第2章Hadoop中的概念13
2.1Hadoop簡介13
2.2MapReduce編程模型簡介15
2.3Hadoop係統的組成19
2.3.1Hadoop 分布式文件係統20
2.3.2輔助名稱節點25
2.3.3任務跟蹤器26
2.3.4作業跟蹤器26
2.4Hadoop 2.027
2.4.1容器29
2.4.2節點管理器29
2.4.3資源管理器30
2.4.4應用程序管理器30
2.4.5分步詳解YARN請求31
2.5HDFS 的高可用性33
2.6本章小結33
第3章初識Hadoop框架34
3.1安裝類型34
3.1.1單機模式35
3.1.2僞分布式集群模式35
3.1.3多節點集群安裝模式35
3.1.4基於Amazon EMR預安裝模式35
3.2使用Cloudera虛擬機搭建開發環境36
3.3一個MapReduce程序的組成37
3.4第一個Hadoop程序38
3.4.1以本地模式運行程序的必要條件39
3.4.2使用舊API編寫的單詞計數程序39
3.4.3構建程序42
3.4.4在集群模式下運行單詞計數程序42
3.4.5使用新API編寫的單詞計數程序43
3.4.6構建程序44
3.4.7在集群模式下運行單詞計數程序45
3.5Hadoop作業中的第三方函數庫45
3.6本章小結50
第4章Hadoop係統管理51
4.1Hadoop的配置文件51
4.2配置Hadoop守護進程52
4.3Hadoop配置文件的優先級53
4.4深入探究Hadoop配置文件54
4.4.1core-site.xml54
4.4.2hdfs-*.xml55
4.4.3mapred-site.xml56
4.4.4yarn-site.xml58
4.4.5YARN中的內存分配60
4.5調度器61
4.5.1計算能力調度器62
4.5.2公平調度器65
4.5.3公平調度器配置65
4.5.4 yarn-site.xml 配置66
4.5.5策略文件的格式和配置67
4.5.6按照drf策略來確定優勢資源的分配68
4.6從屬文件69
4.7機架感知69
4.8 集群管理工具71
4.8.1檢查HDFS71
4.8.2 HDFS管理命令行73
4.8.3 均衡HDFS上的數據分布75
4.8.4從HDFS中復製海量數據76
4.9本章小結76
第5章MapReduce開發基礎78
5.1 Hadoop和數據處理78
5.2 航空公司數據集介紹79
5.2.1 準備開發環境80
5.2.2 準備Hadoop係統81
5.3 MapReduce編程模式81
5.3.1 隻有Map階段的作業(SELECT和WHERE查詢)82
5.3.2 問題定義—SELECT子句82
5.3.3 問題定義—WHERE子句90
5.3.4 Map和Reduce作業(聚閤查詢)93
5.3.5 問題定義—GROUP BY和SUM子句93
5.3.6 應用Combiner提高Aggregation性能99
5.3.7 問題定義—優化後的Aggregators99
5.3.8 Partitioner的作用104
5.3.9 問題定義—按月分離航空數據105
5.4 綜閤分析108
5.5 本章小結110
第6章MapReduce開發進階111
6.1 MapReduce編程模式111
6.2 Hadoop I/O 介紹111
6.3 問題定義—排序114
6.3.1 主要挑戰:全排序115
6.3.2 在Cluster中運行Sorting作業125
6.3.3 僅根據Writable鍵排序125
6.3.4 根據排序迴顧Hadoop的關鍵特性128
6.4 問題定義—分析連續的記錄128
6.4.1 支持二次排序的重要組件129
6.4.2 在沒有Grouping Comparator的情況下實現Secondary Sort136
6.4.3 在Cluster中運行SecondarySort作業137
6.4.4 利用Secondary Sort迴顧Hadoop的關鍵特性137
6.5 問題定義—使用MapReducer進行連接138
6.5.1 處理多輸入:Multiple-Inputs 類138
6.5.2 具備多個輸入的Mapper類139
6.5.3 自定義 Partitioner: Carrier-CodeBasedPartioner141
6.5.4 在Reducer中實現連接141
6.5.5 在集群中運行MapReduce連接作業143
6.5.6 探討與MapReduce相關的Hadoop主要特性144
6.6 問題定義—使用Map-Only 作業進行連接144
6.6.1 基於DistributeCache的解決方案145
6.6.2 在集群中運行Map-Only的連接作業147
6.6.3 總結探討Map-Only連接時的Hadoop關鍵特性149
6.7 在MR作業中保存結果到多輸齣文件149
6.8 使用計數器收集統計數據151
6.9 本章小結153
第7章 Hadoop輸入/輸齣155
7.1 壓縮方式155
7.1.1 壓縮內容的選擇156
7.1.2 各種壓縮方式157
7.1.3 配置壓縮方式158
7.2 Hadoop的I/O處理過程內部159
7.2.1 Inputformat159
7.2.2 OutputFormat161
7.2.3 自定義OutputFormat:將文本轉換成XML161
7.2.4 自定義 InputFormat:使用自定義的XML文件165
7.3 Hadoop文件173
7.3.1 SequenceFile173
7.3.2 MapFiles178
7.3.3 Avro Files180
7.4 本章小結185
第8章 測試Hadoop程序186
8.1 迴顧一下單詞統計的程序186
8.2 MRUnit概述188
8.2.1 安裝MRUnit188
8.2.2 MRUnit 核心類188
8.2.3 編寫一個MRUnit測試用例189
8.2.4 測試計數器191
8.2.5 MRUnit的特性194
8.2.6 MRUnit的局限性194
8.3 用LocalJobRunner測試195
8.3.1 setUp( )方法196
8.3.2 LocalJobRunner的局限性197
8.4 用MiniMRCluster測試198
8.4.1 配置開發環境198
8.4.2 MiniMRCluster例子199
8.4.3 MiniMRCluster的局限性201
8.5 對訪問網絡資源的MR作業進行測試202
8.6 本章小結202
第9章Hadoop的監控203
9.1 在Hadoop MapReduce Jobs中寫日誌消息203
9.2 在Hadoop MapReduce Jobs中查看日誌消息206
9.3 在Hadoop 2.x中使用日誌管理208
9.3.1 Hadoop 2.x中的日誌存儲208
9.3.2 日誌管理提升210
9.3.3 使用基於Web的界麵查看日誌210
9.3.4 命令行界麵211
9.3.5 日誌的保存211
9.4 Hadoop集群性能監控211
9.5 使用YARN REST API212
9.6 使用供應商工具管理Hadoop集群213
9.7 本章小結214
第10章使用Hadoop構建數據倉庫215
10.1 Apache Hive215
10.1.1 安裝Hive216
10.1.2 Hive的架構217
10.1.3 元數據存儲217
10.1.4 HiveQL編譯基礎217
10.1.5 Hive使用的概念218
10.1.6 HiveQL編譯細節222
10.1.7 數據定義語言226
10.1.8 數據操作語言226
10.1.9 擴展接口227
10.1.10 Hive腳本229
10.1.11 性能錶現229
10.1.12 整閤MapReduce230
10.1.13 創建分區230
10.1.14 用戶定義函數232
10.2 Impala234
10.2.1 Impala架構234
10.2.2 Impala特性235
10.2.3 Impala的局限235
10.3 Shark235
10.4 本章小結237
第11章使用Pig進行數據處理238
11.1 Pig簡介238
11.2 運行Pig240
11.2.1 在Grunt Shell中執行241
11.2.2 執行Pig腳本241
11.2.3 嵌入式Java程序242
11.3 Pig Latin243
11.3.1 Pig腳本中的注釋243
11.3.2 Pig語句的執行243
11.3.3 Pig命令244
11.4 UDF249
11.4.1 Mapper中的Eval函數調用249
11.4.2 Reducer中的Eval函數調用250
11.4.3 編寫並使用自定義Filter-Func256
11.5 Pig與Hive對比258
11.6 Crunch API259
11.6.1 Crunch與Pig的區彆259
11.6.2 Crunch管道的例子260
11.7 本章小結265
第12章HCatalog和企業級Hadoop266
12.1 HCataolg和企業級數據倉庫用戶266
12.2 HCatalog技術背景簡介 267
12.2.1 HCatalog命令行接口269
12.2.2 WebHCat269
12.2.3 HCatalog的MapReduce接口270
12.2.4 HCatalog的Pig接口273
12.2.5 HCatalog通知接口274
12.3 HCatalog的安全和認證機製274
12.4 完整的解決方案275
12.5 本章小結275
第13章使用Hadoop分析日誌277
13.1 日誌文件分析應用277
13.1.1 網絡分析277
13.1.2 安全規範與法務278
13.1.3 監控和報警279
13.1.4 物聯網279
13.2 分析步驟280
13.2.1 載入280
13.2.2 提取280
13.2.3 可視化281
13.3 Apache Flume281
13.4 Netflix Suro283
13.5 雲解決方案285
13.6 本章小結285
第14章使用HBase構建實時係統286
14.1 HBase是什麼286
14.2 典型的HBase用例場景287
14.3 HBase數據模型288
14.3.1 HBase邏輯視圖和客戶端視圖288
14.3.2 HBase與RDBMS的區彆289
14.3.3 HBase錶290
14.3.4 HBase單元格290
14.3.5 HBase列簇290
14.4 HBase命令和API291
14.4.1 獲取命令列錶:幫助命令291
14.4.2 創建錶:create命令292
14.4.3 嚮錶中加入行:put命令293
14.4.4 從錶中檢索行:get命令293
14.4.5 讀取多行:scan命令293
14.4.6 統計錶中的行數:count命令293
14.4.7 刪除行:delete命令294
14.4.8 清空錶:truncate命令294
14.4.9 刪除錶:drop命令294
14.4.10 更換錶:alter命令294
14.5 HBase架構295
14.5.1 HBase組件295
14.5.2 HBase中的壓縮與分區302
14.5.3 壓縮303
14.6 HBase配置概覽304
14.7 HBase應用程序設計305
14.7.1 長錶vs寬錶vs窄錶305
14.7.2 行鍵設計306
14.8 使用Java API操作HBase307
14.8.1 一切都是字節307
14.8.2 創建HBase錶307
14.8.3 使用HBaseAdmin類管理HBase308
14.8.4 使用Java API訪問數據308
14.9 HBase與MapReduce集成312
14.9.1 使用MapReduce任務讀取HBase錶312
14.9.2 HBase和MapReduce集群315
14.10 本章小結316
第15章Hadoop與數據科學317
15.1 Hadoop中的數據科學方法318
15.2 Apache Hama318
15.2.1 整體同步並行計算模型318
15.2.2 Hama Hello World!319
15.2.3 濛特卡洛方法321
15.2.4 K-Means聚類324
15.3 Apache Spark327
15.3.1 彈性分布式數據集(RDD)327
15.3.2 Spark與濛特卡洛算法328
15.3.3 Spark與KMeans聚類330
15.4 RHadoop332
15.5 本章小結333
第16章Hadoop與雲計算334
16.1 經濟性334
16.1.1 自有集群335
16.1.2 基於雲平颱的集群335
16.1.3 彈性336
16.1.4
深入理解Hadoop(原書第2版) 下載 mobi epub pdf txt 電子書 格式
深入理解Hadoop(原書第2版) 下載 mobi pdf epub txt 電子書 格式 2024
深入理解Hadoop(原書第2版) 下載 mobi epub pdf 電子書這本書比較好,就是後麵講瞭1/3的非Hadoop的東西,
評分適閤入門以及進一步提高的童鞋學習參考使用,書的印刷質量很好。
評分很不錯 很不錯 很不錯 很不錯
評分還不錯還不錯
評分618促銷買的,劃算,還沒有抽時間看
評分講述清晰,內容有些過時
評分由淺入深,印刷質量也很好,非常好,的一本書
評分深入理解下吧,得備課瞭~
評分送貨速度慢瞭點,不過雙十一可以理解
深入理解Hadoop(原書第2版) mobi epub pdf txt 電子書 格式下載 2024