深入理解Hadoop(原書第2版)( 簡體 字) | |
作者:(美)杰森·文納 | 類別:1. -> 程式設計 -> 雲計算 |
出版社:機械工業出版社 | 3dWoo書號: 42864 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:11/1/2015 | |
頁數:385 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111515654 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
譯者序
作者簡介 前言 第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 按需付費336 16.1.5 競價336 16.1.6 混合集群336 16.2 后勤保障337 16.2.1 導入/導出337 16.2.2 數據保存337 16.3 安全性337 16.4 云端應用模型338 16.5 云服務商339 16.5.1 亞馬遜網絡服務(AWS)339 16.5.2 谷歌云平臺341 16.5.3 微軟Azure342 16.5.4 選擇云服務商342 16.6 案例學習: AWS342 16.6.1 EMR343 16.6.2 EC2345 16.7 本章小結348 第17章構建YARN應用程序349 17.1 YARN:通用分布式系統349 17.2 YARN:快速瀏覽351 17.3 創建YARN應用程序353 17.4 DownloadService.java類354 17.5 Client.java類356 17.5.1 從客戶端啟動應用管理器的步驟356 17.5.2 創建YarnClient357 17.5.3 配置應用程序357 17.5.4 啟動應用管理器360 17.5.5 監控應用360 17.6 ApplicationMaster.java362 17.6.1 啟動工作任務的步驟363 17.6.2 初始化應用管理器協議和容器管理協議364 17.6.3 在資源管理器中注冊應用管理器364 17.6.4 配置容器參數364 17.6.5 向資源管理器請求容器364 17.6.6 在任務節點上啟動容器364 17.6.7 等待容器結束工作任務365 17.6.8 在資源管理器中注銷應用管理器365 17.7 運行應用管理器367 17.7.1 在非托管模式中啟動應用管理器367 17.7.2 在托管模式中啟動應用管理器367 17.8 本章小結367 附錄A安裝Hadoop369 附錄B使用Maven和Eclipse378 附錄CApache Ambari383 本書作者基于對Hadoop系統的實踐,深入淺出地對Hadoop進行了詳細的講解,包含大量的實例和技巧,可幫助有一定基礎的開發者快速掌握分布式系統。主要內容包括:第1章~第4章講解大數據系統的基本概念、Hadoop系統的關鍵概念,以及進行Hadoop平臺管理的關鍵概念要素。第5章~第7章是本書的重點,深入分析了MapReduce框架,不僅包括MapReduce框架的API,還介紹MapReduce框架的更復雜概念及其設計理念。第8章~第14章介紹Hadoop生態系統,包括支持MapReduce程序的單元測試和集成測試框架、Hadoop系統的監控和日志系統、Hive框架、Pig和Crunch框架、HCatalog框架、Hadoop日志流處理、HBase等。第15章~第17章介紹了數據科學基本概念及應用、云計算實例、分布式下載服務實例等。
|