<內容簡介> Hadoop 是Apache 基金會的開放原始碼專案,為開發者提供了一個分散式系統的基礎架構,使用者可以在不了解分散式系統的底層細節的情況下開發分散式的應用,充分利用叢集的強大功能,實現高速運算和儲存。Hadoop 專案中包括一個分散式的檔案系統HDFS 專案,一個分散式的並行程式設計框架MapReduce,以及包括Nutch 在內的諸多子專案。如果您是專業技術人員,本書將帶領你快速地進入雲端運算的世界,全面掌握Hadoop 及其相關技術,能幫助你使用Hadoop 技術解決目前面臨的問題。如果你是大專院校資訊及相關專業的學生,本書為你在課堂之外了解最新的IT 技術開啟了一扇窗戶,能幫助你拓寬視野,完善知識結構,為迎接未來的挑戰做好知識準備。 ★ 目錄 第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 作業的執行流程