Hadoop 是Apache 基金會的開放原始碼專案,為開發者提供了一個分散式系統的基礎架構,使用者可以在不了解分散式系統的底層細節的情況下開發分散式的應用,充分利用叢集的強大功能,實現高速運算和儲存。Hadoop 專案中包括一個分散式的檔案系統HDFS 專案,一個分散式的並行程式設計框架MapReduce,以及包括Nutch 在內的諸多子專案。
第二版新增《Hadoop 2.3.0 新增功能介紹》,如果您是專業技術人員,本書將帶領你快速地進入雲端運算的世界,全面掌握Hadoop 及其相關技術,能幫助你使用Hadoop 技術解決目前面臨的問題。如果你是大專院校資訊及相關專業的學生,本書為你在課堂之外了解最新的IT 技術開啟了一扇窗,幫助你拓寬視野,為迎接未來的挑戰做好知識準備,希望不同背景和職業的讀者都能從中獲益。
本書內容
前10 章主要介紹了Apache Hadoop 的common 核心、MapReduce 及檔案系統。從第11 章開始,詳細講解與Hadoop 相關的其他專案,分別為:Hive、HBase、Mahout、Pig、ZooKeeper、Avro、Chukwa,以及Hadoop 的常用外掛程式。此外,附錄中還包含一個簡單的雲端運算線上檢測平台。
讀者可以先系統地學習前10 章,對Hadoop 的核心內容有一個很好的了解。在此基礎上,對後面的章節可進行選擇性的學習。因為在內容的編排上,各章的知識點是相對獨立的,各章之間是並行的關係。如果時間允許,還是建議大家系統地學習全書的內容,這樣能夠對Hadoop 系統的機制有一個完整的了解,為今後深入地研究和實作Hadoop 及雲端運算技術打下堅實的基礎。
另外,希望大家能一邊閱讀,一邊動手實作本書中所列出的程式設計範例。例如,先搭建一個自己的雲端平台,如果條件受限,可以選擇虛擬分佈的方式。
本書適合讀者
•具一定分散式系統的基礎,對檔案系統的基本操作有一定了解者。
•有一定的Linux 作業系統的基礎者。
• 有程式設計基礎和閱讀程式的能力,尤其能夠熟練使用Java 語言。
•對資料倉儲、系統監控、網路爬蟲等知識也能有一些了解者。
目錄
前言
Hadoop 2.3.0 新增功能介紹
第1 章 Hadoop 簡介
1.1 什麼是Hadoop
1.1.1 Hadoop 概述
1.1.2 Hadoop 的歷史
1.1.3 Hadoop 的功能與作用
1.1.4 Hadoop 的優勢
1.1.5 Hadoop 的應用現狀和發展趨勢
1.2 Hadoop 專案及其結構
1.3 Hadoop 的體系結構
1.3.1 HDFS 的體系結構
1.3.2 MapReduce 的體系結構
1.4 Hadoop 與分散式開發
1.5 Hadoop 計算模型—MapReduce
1.6 Hadoop 的資料管理
1.6.1 HDFS 的資料管理
1.6.2 HBase 的資料管理
1.6.3 Hive 的資料管理
1.7 小結
第2 章 Hadoop 的安裝與設定
2.1 在Linux 上安裝與設定Hadoop
2.1.1 安裝JDK 1.6
2.1.2 設定SSH 免密碼登入
2.1.3 安裝並執行Hadoop
2.2 在Windows 上安裝與設定Hadoop
2.2.1 安裝Cygwin
2.2.2 設定環境變數
2.2.3 安裝和啟動sshd 服務
2.2.4 設定SSH 免密碼登入
2.3 安裝和設定Hadoop 叢集
2.3.1 網路拓撲
2.3.2 定義叢集拓撲
2.3.3 建立和安裝Cluster
2.4 記錄檔分析及幾個小技巧
2.5 小結
第3 章 Hadoop 應用案例分析
3.1 Hadoop 在Yahoo! 的應用
3.2 Hadoop 在eBay 的應用
3.3 Hadoop 在百度的應用
3.4 Hadoop 在Facebook 的應用
3.5 Hadoop 平台上的巨量資料排序
3.6 小結
參考文獻
第4 章 MapReduce 計算模型
4.1 為什麼要用MapReduce
4.2 MapReduce 計算模型
4.2.1 MapReduce Job
4.2.2 Hadoop 中的Hello World 程式
4.2.3 MapReduce 的資料流程和控制流
4.3 MapReduce 工作的最佳化
4.4 Hadoop 流
4.4.1 Hadoop 流的工作原理
4.4.2 Hadoop 流的指令
4.4.3 實戰案例:增加Bash 程式和Python 程式到Hadoop 流中
4.5 Hadoop Pipes
4.6 小結 4-24
第5 章 開發MapReduce 應用程式
5.1 系統參數的設定
5.2 設定開發環境
5.3 撰寫MapReduce 程式
5.3.1 Map 處理
5.3.2 Reduce 處理
5.4 本機測試
5.5 執行MapReduce 程式
5.5.1 打包
5.5.2 在本機模式下執行
5.5.3 在叢集上執行
5.6 網路使用者介面
5.6.1 JobTracker 頁面
5.6.2 工作頁面
5.6.3 傳回結果
5.6.4 工作頁面
5.6.5 工作細節頁面
5.7 性能最佳化
5.8 MapReduce 工作流
5.8.1 將問題分解成MapReduce 工作
5.8.2 執行相互相依的工作
5.9 小結
第6 章 MapReduce 應用案例
6.1 單字計數
6.1.1 實例描述
6.1.2 設計想法
6.1.3 程式碼
6.1.4 程式解讀
6.1.5 程式執行
6.1.6 程式結果
6.2 去除重複資料
6.2.1 實例描述
6.2.2 設計想法
6.2.3 程式碼
6.3 排序
6.3.1 實例描述
6.3.2 設計想法
6.3.3 程式碼
6.4 單表關聯
6.4.1 實例描述
6.4.2 設計想法
6.4.3 程式碼
6.5 多表關聯
6.5.1 實例描述
6.5.2 設計想法
6.5.3 程式碼
6.6 小結
第7 章 MapReduce 工作機制
7.1 MapReduce 作業的執行流程
7.1.1 MapReduce 工作的執行總流程
7.1.2 傳送作業
7.1.3 初始化作業
7.1.4 分配工作
7.1.5 執行工作
7.1.6 更新工作執行進度和狀態
7.1.7 完成作業
7.2 錯誤處理機制
7.2.1 硬體故障
7.2.2 工作失敗
7.3 作業排程機制
7.4 shuffle 和排序
7.4.1 map 端
7.4.2 reduce 端
7.4.3 shuffle 過程的最佳化
7.5 工作執行
7.5.1 推測式執行
7.5.2 工作JVM 重用
7.5.3 跳過壞記錄
7.5.4 工作執行環境
7.6 小結
第8 章 Hadoop I/O 操作
8.1 I/O 操作中的資料檢查
8.2 資料的壓縮
8.2.1 Hadoop 對壓縮工具的選擇
8.2.2 壓縮分割和輸入分割
8.2.3 在MapReduce 程式中使用壓縮
8.3 資料的I/O 中序列化操作
8.3.1 Writable 類別
8.3.2 實現自己的Hadoop 資料型態
8.4 針對MapReduce 的檔案類別
8.4.1 SequenceFile 類別
8.4.2 MapFile 類別
8.5 小結
第9 章 HDFS 詳解
9.1 Hadoop 的檔案系統
9.2 HDFS 簡介
9.3 HDFS 體系結構
9.3.1 HDFS 的相關概念
9.3.2 HDFS 的體系結構
9.4 HDFS 的基本操作
9.4.1 HDFS 的命令列操作
9.4.2 HDFS 的Web 介面
9.5 HDFS 常用Java API 詳解
9.5.1 使用Hadoop URL讀取資料
9.5.2 使用FileSystem API 讀取資料
9.5.3 建立目錄
9.5.4 寫資料
9.5.5 刪除資料
9.5.6 檔案系統查詢
9.6 HDFS 中的讀寫資料流程
9.6.1 檔案的讀取
9.6.2 檔案的寫入
9.6.3 一致性模型
9.7 HDFS 指令詳解
9.7.1 透過distcp 進行並行複製
9.7.2 HDFS 的平衡
9.7.3 使用Hadoop 歸檔檔案
9.7.4 其他指令
9.8 小結
第10 章 Hadoop 的管理
10.1 HDFS 檔案結構
10.2 Hadoop 的狀態監視和管理工具
10.2.1 稽核記錄檔
10.2.2 監控記錄檔
10.2.3 Metrics
10.2.4 Java 管理擴充
10.2.5 Ganglia
10.2.6 Hadoop 管理指令
10.3 Hadoop 叢集的維護
10.3.1 安全模式
10.3.2 Hadoop 的備份
10.3.3 Hadoop 的節點管理
10.3.4 系統升級
10.4 小結
第11 章 Hive 詳解
11.1 Hive 簡介
11.1.1 Hive 的資料儲存
11.1.2 Hive 的中繼資料儲存
11.2 Hive 的基本操作
11.2.1 在叢集上安裝Hive
11.2.2 設定Hive
11.3 Hive QL 詳解
11.3.1 資料定義(DDL)操作
11.3.2 資料操作(DML)
11.3.3 SQL 操作
11.3.4 Hive QL 的使用實例
11.4 Hive 的網路(WebUI)介面
11.5 Hive 的JDBC 介面
11.6 Hive 的最佳化
11.7 小結 11-30
第12 章 HBase 詳解
12.1 HBase 簡介
12.2 HBase 的基本操作
12.2.1 HBase 的安裝
12.2.2 執行HBase
12.2.3 HBase Shell
12.2.4 HBase 設定
12.3 HBase 體系結構
12.4 HBase 資料模型
12.4.1 資料模型
12.4.2 概念檢視
12.4.3 實體檢視
12.5 HBase 與RDBMS
12.6 HBase 與HDFS
12.7 HBase 使用者端
12.8 Java API 12-23
12.9 HBase 程式設計實例之MapReduce
12.10 模式設計
12.10.1 學生表
12.10.2 事件表
12.11 小結
第13 章 Mahout 詳解
13.1 Mahout 簡介
13.2 Mahout 的安裝和設定
13.3 Mahout API 簡介
13.4 Mahout 中的聚類和分類
13.4.1 什麼是聚類和分類
13.4.2 Mahout 中的資料表示
13.4.3 將文字轉化成向量
13.4.4 Mahout 中的聚類、分類演算法
13.4.5 演算法應用實例
13.5 Mahout 應用:建立一個推薦引擎
13.5.1 推薦引擎簡介
13.5.2 使用Taste 建構一個簡單的推薦引擎
13.5.3 簡單分散式系統下基於產品的推薦系統簡介
13.6 小結
第14 章 Pig 詳解
14.1 Pig 簡介
14.2 Pig 的安裝和設定
14.2.1 Pig 的安裝條件
14.2.2 Pig 的下載、安裝和設定
14.2.3 Pig 執行模式
14.3 Pig Latin 語言
14.3.1 Pig Latin 語言簡介
14.3.2 Pig Latin 的使用
14.3.3 Pig Latin 的資料型態
14.3.4 Pig Latin 關鍵字
14.4 使用者定義函數
14.4.1 撰寫使用者定義函數
14.4.2 使用使用者定義函數
14.5 Pig 實例
14.5.1 Local 模式
14.5.2 MapReduce 模式
14.6 Pig 進階
14.6.1 資料實例
14.6.2 Pig 資料分析
14.7 小結
第15 章 ZooKeeper 詳解
15.1 ZooKeeper 簡介
15.1.1 ZooKeeper 的設計目標
15.1.2 資料模型和階層命名空間
15.1.3 ZooKeeper 中的節點和臨時節點
15.1.4 ZooKeeper 的應用
15.2 ZooKeeper 的安裝和設定
15.2.1 在叢集上安裝ZooKeeper
15.2.2 設定ZooKeeper
15.2.3 執行ZooKeeper
15.3 ZooKeeper 的簡單操作
15.3.1 使用ZooKeeper 指令的簡單操作步驟
15.3.2 ZooKeeper API 的簡單使用
15.4 ZooKeeper 的特性
15.4.1 ZooKeeper 的資料模型
15.4.2 ZooKeeper 階段及狀態
15.4.3 ZooKeeper Watches
15.4.4 ZooKeeper ACL
15.4.5 ZooKeeper 的一致性確保
15.5 ZooKeeper 的Leader 選舉
15.6 ZooKeeper 鎖服務
15.6.1 ZooKeeper 中的鎖機制
15.6.2 ZooKeeper 提供的一個寫鎖的實現
15.7 使用ZooKeeper 建立應用程式
15.8 小結
第16 章 Avro 詳解
16.1 Avro 簡介
16.1.1 模式宣告
16.1.2 資料序列化
16.1.3 資料排列順序
16.1.4 物件容器檔案
16.1.5 協定宣告
16.1.6 協定傳輸格式
16.1.7 模式解析
16.2 Avro 的C/C++ 實現
16.3 Avro 的Java 實現
16.4 GenAvro(Avro IDL)語言
16.5 Avro SASL 概述
16.6 小結
第17 章 Chukwa 詳解
17.1 Chukwa 簡介
17.2 Chukwa 架構
17.2.1 使用者端(Agent)及其資料模型
17.2.2 收集器(Collector)和分離解析器(Demux)
17.2.3 HICC
17.3 Chukwa 的可用性
17.4 Chukwa 叢集搭建
17.4.1 基本設定要求
17.4.2 安裝Chukwa
17.5 Chukwa 資料流程的處理
17.6 Chukwa 與其他監控系統比較
17.7 小結
參考文獻
第18 章 Hadoop 的常用外掛程式與開發
18.1 Hadoop Studio 簡介和使用
18.1.1 Hadoop Studio 的安裝和設定
18.1.2 Hadoop Studio 的使用舉例
18.2 Hadoop Eclipse 簡介和使用
18.2.1 Hadoop Eclipse 安裝和設定
18.2.2 Hadoop Eclipse 的使用舉例
18.2.3 Hadoop Eclipse 外掛程式開發
18.3 Hadoop Streaming 簡介和使用
18.3.1 Hadoop Streaming 的使用舉例
18.3.2 使用Hadoop Streaming 時常見的問題
18.4 Hadoop Libhdfs 簡介和使用
18.4.1 Hadoop Libhdfs 安裝和設定
18.4.2 Hadoop Libhdfs API 簡介
18.4.3 Hadoop Libhdfs 的使用舉例
18.5 小結
附錄A 雲端運算線上檢測平台
A.1 平台介紹
A.2 結構和功能
A.2.1 前景使用者介面的結構和功能
A.2.2 幕後程式執行的結構和功能
A.3 檢測流程
A.4 使用
A.4.1 功能使用
A.4.2 傳回結果介紹
A.4.3 使用注意事項
A.5 小結
前言
Hadoop 2.3.0 新增功能介紹
第1 章 Hadoop 簡介
1.1 什麼是Hadoop
1.1.1 Hadoop 概述
1.1.2 Hadoop 的歷史
1.1.3 Hadoop 的功能與作用
1.1.4 Hadoop 的優勢
1.1.5 Hadoop 的應用現狀和發展趨勢
1.2 Hadoop 專案及其結構
1.3 Hadoop 的體系結構
1.3.1 HDFS 的體系結構
1.3.2 MapReduce 的體系結構
1.4 Hadoop 與分散式開發
1.5 Hadoop 計算模型—MapReduce
1.6 Hadoop 的資料管理
1.6.1 HDFS 的資料管理
1.6.2 HBase 的資料管理
1.6.3 Hive 的資料管理
1.7 小結
第2 章 Hadoop 的安裝與設定
2.1...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。