作 者:範東來 著
定 價:59
出 版 社:人民郵電出版社
出版日期:2016年08月01日
頁 數:351
裝 幀:簡裝
ISBN:9787115427465
Hadoop是目前受關注的大數據處理平臺和解決方案,並且已經廣泛應用於生產環境。本書基於新的Hadoop(CDH5,Apache Hadoop 2.6)版本介紹Hadoop技術的相關知識,不但詳細介紹了Hadoop、HDFS、YARN、MapReduce、Hive、Sqoop和HBase等,還深入探討了Hadoop、HBase的運維和性能調優,並包含了一個具有代表性的完整的基於Hadoop的商業智能繫統的設計和實現。本書的大特點是面向實踐。基礎篇介紹Hadoop及相關組件的同時,包含了大量動手等
●目錄基礎篇:Hadoop基礎章 緒論 21.1 Hadoop和雲計算 21.1.1 Hadoop的電梯演講 21.1.2 Hadoop生態圈 31.1.3 雲計算的定義 61.1.4 雲計算的類型 71.1.5 Hadoop和雲計算 81.2 Hadoop和大數據 91.2.1 大數據的定義 91.2.2 大數據的結構類型 101.2.3 大數據行業應用實例 121.2.4 Hadoop和大數據 131.2.5 其他大數據處理平臺 141.3 數據挖掘和商業智能 151.3.1 數據挖掘的定義 151.3.2 數據倉庫 171.3.3 操作數據庫繫統和數據倉庫繫統的區別 181.3.4 為什麼需要分離的數據倉庫 191.3.5 商業智能 191.3.6 大數據時代的商業智能 201.4 小結 21第2章 環境準備 222.1 Hadoop的發行版本選擇 222.1.1 Apache Hadoop 222.1.2 CDH 222.1.3 Hadoop的版本 232.1.4 如何選擇Hadoop的版本 252.2 Hadoop架構 262.2.1 Hadoop HDFS架構 272.2.2 YARN架構 282.2.3 Hadoop架構 282.3 安裝Hadoop 292.3.1 安裝運行環境 302.3.2 修改主機名和用戶名 362.3.3 配置靜態IP地址 362.3.4 配置SSH無密碼連接 372.3.5 安裝JDK 382.3.6 配置Hadoop 392.3.7 格式化HDFS 422.3.8 啟動Hadoop並驗證安裝 422.4 安裝Hive 432.4.1  數據庫 442.4.2 修改Hive配置文件 442.4.3 驗證安裝 452.5 安裝HBase 462.5.1 解壓文件並修改Zookeeper相關配置 462.5.2 配置節點 462.5.3 配置環境變量 472.5.4 啟動並驗證 472.6 安裝Sqoop 472.7 Cloudera Manager 482.8 小結 51第3章 Hadoop的基石:HDFS 523.1 認識HDFS 523.1.1 HDFS的設計理念 543.1.2 HDFS的架構 543.1.3 HDFS容錯 583.2 HDFS讀取文件和寫入文件 583.2.1 塊的分布 593.2.2 數據讀取 603.2.3 寫入數據 613.2.4 數據完整性 623.3 如何訪問HDFS 633.3.1 命令行接口 633.3.2 Java API 663.3.3 其他常用的接口 753.3.4 Web UI 753.4 HDFS中的新特性 763.4.1 NameNode HA 763.4.2 NameNode Federation 783.4.3 HDFS Snapshots 793.5 小結 79第4章 YARN:統一資源管理和調平臺 804.1 YARN是什麼 804.2 統一資源管理和調度平臺範型 814.2.1 集中式調度器 814.2.2 雙層調度器 814.2.3 狀態共享調度器 824.3 YARN的架構 824.3.1 ResourceManager 834.3.2 NodeManager 854.3.3 ApplicationMaster 874.3.4 YARN的資源表示模型Container 874.4 YARN的工作流程 884.5 YARN的調度器 894.5.1 YARN的資源管理機制 894.5.2 FIFO Scheduler 904.5.3 Capacity Scheduler 904.5.4 Fair Scheduler 914.6 YARN命令行 924.7 Apache Mesos 954.8 小結 96第5章 分而治之的智慧:MapReduce 975.1 認識MapReduce 975.1.1 MapReduce的編程思想 985.1.2 MapReduce運行環境 1005.1.3 MapReduce作業和任務 1025.1.4 MapReduce的計算資源劃分 1025.1.5 MapReduce的局限性 1035.2 Hello Word Count 1045.2.1 Word Count的設計思路 1045.2.2 編寫Word Count 1055.2.3 運行程序 1075.2.4 還能更快嗎 1095.3 MapReduce的過程 1095.3.1 從輸入到輸出 1095.3.2 input 1105.3.3 map及中間結果的輸出 1125.3.4 shuffle 1135.3.5 reduce及最後結果的輸出 1155.3.6 sort 1155.3.7 作業的進度組成 1165.4 MapReduce的工作機制 1165.4.1 作業提交 1175.4.2 作業初始化 1185.4.3 任務分配 1185.4.4 任務執行 1185.4.5 任務完成 1185.4.6 推測執行 1195.4.7 MapReduce容錯 1195.5 MapReduce編程 1205.5.1 Writable類 1205.5.2 編寫Writable類 1235.5.3 編寫Mapper類 1245.5.4 編寫Reducer類 1255.5.5 控制shuffle 1265.5.6 控制sort 1285.5.7 編寫main函數 1295.6 MapReduce編程實例:連接 1305.6.1 設計思路 1315.6.2 編寫Mapper類 1315.6.3 編寫Reducer類 1325.6.4 編寫main函數 1335.7 MapReduce編程實例:二次排序 1345.7.1 設計思路 1345.7.2 編寫Mapper類 1355.7.3 編寫Partitioner類 1365.7.4 編寫SortComparator類 1365.7.5 編寫Reducer類 1375.7.6 編寫main函數 1375.8 MapReduce編程實例:全排序 1395.8.1 設計思路 1395.8.2 編寫代碼 1405.9 小結 141第6章 SQL on Hadoop:Hive 1426.1 認識Hive 1426.1.1 從MapReduce到SQL 1436.1.2 Hive架構 1446.1.3 Hive與關繫型數據庫的區別 1466.1.4 Hive命令的使用 1476.2 數據類型和存儲格式 1496.2.1 基本數據類型 1496.2.2 復雜數據類型 1496.2.3 存儲格式 1506.2.4 數據格式 1516.3 HQL:數據定義 1526.3.1 Hive中的數據庫 1526.3.2 Hive中的表 1546.3.3 創建表 1546.3.4 管理表 1566.3.5 外部表 1566.3.6 分區表 1566.3.7 刪除表 1586.3.8 修改表 1586.4 HQL:數據操作 1596.4.1 裝載數據 1596.4.2 通過查詢語句向表中插入數據 1606.4.3 利用動態分區向表中插入數據 1606.4.4 通過CTAS加載數據 1616.4.5 導出數據 1616.5 HQL:數據查詢 1626.5.1 SELECT…FROM語句 1626.5.2 WHERE語句 1636.5.3 GROUP BY和HAVING語句 1646.5.4 JOIN語句 1646.5.5 ORDER BY和SORT BY語句 1666.5.6 DISTRIBUTE BY和SORT BY語句 1676.5.7 CLUSTER BY 1676.5.8 分桶和抽樣 1686.5.9 UNION ALL 1686.6 Hive函數 1686.6.1 標準函數 1686.6.2 聚合函數 1686.6.3 表生成函數 1696.7 Hive用戶自定義函數 1696.7.1 UDF 1696.7.2 UDAF 1706.7.3 UDTF 1716.7.4 運行 1736.8 小結 173第7章 SQL to Hadoop : Sqoop 1747.1 一個Sqoop示例 1747.2 導入過程 1767.3 導出過程 1787.4 Sqoop的使用 1797.4.1 codegen 1807.4.2 create-hive-table 1807.4.3 eval 1817.4.4 export 1817.4.5 help 1827.4.6 import 1827.4.7 import-all-tables 1837.4.8 job 1847.4.9 list-databases 1847.4.10 list-tables 1847.4.11 merge 1847.4.12 metastore 1857.4.13 version 1867.5 小結 186第8章 HBase:HadoopDatabase 1878.1 酸和堿:兩種數據庫事務方法論 1878.1.1 ACID 1888.1.2 BASE 1888.2 CAP定理 1888.3 NoSQL的架構模式 1898.3.1 鍵值存儲 1898.3.2 圖存儲 1908.3.3 列族存儲 1918.3.4 文檔存儲 1928.4 HBase的架構模式 1938.4.1 行鍵、列族、格 1938.4.2 HMaster 1948.4.3 Region和RegionServer 1958.4.4 WAL 1958.4.5 HFile 1958.4.6 Zookeeper 1978.4.7 HBase架構 1978.5 HBase寫入和讀取數據 1988.5.1 Region定位 1988.5.2 HBase寫入數據 1998.5.3 HBase讀取數據 1998.6 HBase基礎API 2008.6.1 創建表 2018.6.2 插入 2028.6.3 讀取 2038.6.4 掃描 2048.6.5 格 2068.6.6 刪除表 2078.7 HBase高級API 2078.7.1 過濾器 2088.7.2 計數器 2088.7.3 協處理器 2098.8 小結 214第9章 Hadoop性能調優和運維 2159.1 Hadoop客戶端 2159.2 Hadoop性能調優 2169.2.1 選擇合適的硬件 2169.2.2 操作繫統調優 2189.2.3 JVM調優 2199.2.4 Hadoop參數調優 2199.3 Hive性能調優 2259.3.1 JOIN優化 2269.3.2 Reducer的數量 2269.3.3 列裁剪 2269.3.4 分區裁剪 2269.3.5 GROUP BY優化 2269.3.6 合並小文件 2279.3.7 MULTI-GROUP BY和MULTI-INSERT 2289.3.8 利用UNION ALL 特性 2289.3.9 並行執行 2289.3.10 全排序 2289.3.11 Top N 2299.4 HBase調優 2299.4.1 通用調優 2299.4.2 客戶端調優 2309.4.3 寫調優 2319.4.4 讀調優 2319.4.5 表設計調優 2329.5 Hadoop運維 2329.5.1 集群節點動態擴容和卸載 2339.5.2 利用SecondaryNameNode恢復NameNode 2349.5.3 常見的運維技巧 2349.5.4 常見的異常處理 2359.6 小結 236應用篇:商業智能繫統項目實戰0章 在線圖書銷售商業智能繫統 23810.1 項目背景 23810.2 功能需求 23910.3 非功能需求 24010.4 小結 2401章 繫統結構設計 24111.1 繫統架構 24111.2 功能設計 24211.3 數據倉庫結構 24311.4 繫統網絡拓撲與硬件選型 24611.4.1 繫統網絡拓撲 24611.4.2 繫統硬件選型 24811.5 技術選型 24911.5.1 平臺選型 24911.5.2 繫統開發語言選型 24911.6 小結 2492章 在開發之前 25012.1 新建一個工程 25012.1.1 安裝Python 25012.1.2 安裝PyDev插件 25112.1.3 新建PyDev項目 25212.2 代碼目錄結構 25312.3 項目的環境變量 25312.4 如何調試 25412.5 小結 2543章 實現數據導入導出模塊 25513.1 處理流程 25513.2 導入方式 25613.2.1 全量導入 25613.2.2 增量導入 25613.3 讀取配置文件 25713.4 SqoopUtil 26113.5 整合 26213.6 導入說明 26213.7 導出模塊 26313.8 小結 2654章 實現數據分析工具模塊 26614.1 處理流程 26614.2 讀取配置文件 26614.3 HiveUtil 26814.4 整合 26814.5 數據分析和報表 26914.5.1 OLAP和Hive 26914.5.2 OLAP和多維模型 27014.5.3 選MySQL還是選HBase 27214.6 小結 2735章 實現業務數據的數據清洗 模塊 27415.1 ETL 27415.1.1 數據抽取 27415.1.2 數據轉換 27415.1.3 數據清洗工具 27515.2 處理流程 27515.3 數據去重 27615.3.1 產生原因 27615.3.2 去重方法 27715.3.3 一個很有用的UDF: RowNum 27715.3.4 第二種去重方法 27915.3.5 進行去重 27915.4 小結 2826章 實現點擊流日志的數據清洗 模塊 28316.1 數據倉庫和Web 28316.2 處理流程 28516.3 字段的獲取 28516.4 編寫MapReduce作業 28816.4.1 編寫IP地址解析器 28816.4.2 編寫Mapper類 29116.4.3 編寫Partitioner類 29516.4.4 編寫SortComparator類 29516.4.5 編寫Reducer類 29716.4.6 編寫main函數 29816.4.7 通過Python調用jar文件 29916.5 還能做什麼 30016.5.1 網站分析的指標 30016.5.2 網站分析的決策支持 30116.6 小結 3017章 實現購書轉化率分析模塊 30217.1 漏鬥模型 30217.2 處理流程 30317.3 讀取配置文件 30317.4 提取所需數據 30417.5 編寫轉化率分析MapReduce作業 30517.5.1 編寫Mapper類 30617.5.2 編寫Partitioner類 30817.5.3 編寫SortComparator類 30917.5.4 編寫Reducer類 31017.5.5 編寫Driver類 31217.5.6 通過Python模塊調用jar文件 31417.6 對中間結果進行彙總得到最終 結果 31417.7 整合 31617.8 小結 3168章 實現購書用戶聚類模塊 31718.1 物以類聚 31718.2 聚類算法 31818.2.1 k-means算法 31818.2.2 Canopy算法 31918.2.3 數據向量化 32018.2.4 數據歸一化 32118.2.5 相似性度量 32218.3 用MapReduce實現聚類算法 32318.3.1 Canopy算法與MapReduce 32318.3.2 k-means算法與MapReduce 32318.3.3 Apache Mahout 32418.4 處理流程 32418.5 提取數據並做歸一化 32518.6 維度相關性 32718.6.1 維度的選取 32718.6.2 相關繫數與相關繫數矩陣 32818.6.3 計算相關繫數矩陣 32818.7 使用Mahout完成聚類 32918.7.1 使用Mahout 32918.7.2 解析Mahout的輸出 33218.7.3 得到聚類結果 33418.8 得到最終結果 33518.9 評估聚類結果 33718.9.1 一份不適合聚類的數據 33718.9.2 簇間距離和簇內距離 33718.9.3 計算平均簇間距離 33818.10 小結 3399章 實現調度模塊 34019.1 工作流 34019.2 編寫代碼 34119.3 crontab 34219.4 讓數據說話 34319.5 小結 344結束篇:總結和展望第20章 總結和展望 34620.1 總結 34620.2 BDAS 34720.3 Dremel繫技術 34820.4 Pregel繫技術 34920.5 Docker和Kubernetes 35020.6 數據集成工具NiFi 35020.7 小結 351參考文獻 352
本書介紹了Hadoop技術的相關知識,並將理論知識與實際項目相結合。全書共分為三個部分:基礎篇、應用篇和總結篇。基礎篇詳細介紹了Hadoop、YARN、MapReduce、HDFS、Hive、Sqoop和HBase,並深入探討了Hadoop的運維和調優;應用篇則包含了一個具有代表性的完整的基於Hadoop的商業智能繫統的設計和實現;結束篇對全書進行總結,並對技術發展做了展望。
範東來 著
範東來,北京航空航天大學碩士,技術圖書作者和譯者,著有《Hadoop海量數據處理》(該書臺灣繁體字版為《Hadoop:BigData技術詳解與專案實作》),譯有《解讀NoSQL》。BBD(數聯銘品)大數據技術部負責人,大數據平臺架構師,極客學院布道師。研究方向:並行圖挖掘、去中心化應用。