內容簡介
MapReduce - Hadoop高手的鐵人之路
內容簡介
Hadoop是一種分散式資料和計算的框架,在巨量資料處理中應用非常廣泛。MapReduce是一種程式設計模型,Hadoop正是以MapReduce作為核心程式設計模型的。
本書深入淺出、有系統地透過非技術性的表達方式和詳細的原始程式分析,介紹MapReduce 2.0的理論系統、架構和程式設計方法。幫助讀者掌握MapReduce 2.0基礎和特性的基礎上,培養實際程式設計和解決巨量資料處理問題的能力。
強調理論聯繫實際,注重MapReduce程式設計解決現實問題的應用,提供大量程式設計實戰例題供讀者參考。
適用:學習MapReduce 2.0的原始程式、MapReduce 2.0程式設計、資料採擷、機器學習等相關內容的程式設計人員,或大專院校相關系作為參考教材。
內容簡介
Hadoop是一種分散式資料和計算的框架,在巨量資料處理中應用非常廣泛。MapReduce是一種程式設計模型,Hadoop正是以MapReduce作為核心程式設計模型的。
本書深入淺出、有系統地透過非技術性的表達方式和詳細的原始程式分析,介紹MapReduce 2.0的理論系統、架構和程式設計方法。幫助讀者掌握MapReduce 2.0基礎和特性的基礎上,培養實際程式設計和解決巨量資料處理問題的能力。
強調理論聯繫實際,注重MapReduce程式設計解決現實問題的應用,提供大量程式設計實戰例題供讀者參考。
適用:學習MapReduce 2.0的原始程式、MapReduce 2.0程式設計、資料採擷、機器學習等相關內容的程式設計人員,或大專院校相關系作為參考教材。
作者簡介
王曉華
資深電腦專業講師,教授物件導向程式設計、資料結構、Hadoop程式設計等相關課程,主要研究雲端運算、資料採擷,發表過多篇論文。
資深電腦專業講師,教授物件導向程式設計、資料結構、Hadoop程式設計等相關課程,主要研究雲端運算、資料採擷,發表過多篇論文。
內容目錄
前言
第1章1 大象也會跳舞
1.1 巨量資料時代
1.2 巨量資料分析時代
1.3 簡單、粗暴、有效--這就是Hadoop
1.4 MapReduce 與Hadoop
1.5 看,大象也會跳舞
本章小結
第2章2 大象的肚子--HDFS 檔案系統詳解
2.1 HDFS 基礎詳解
2.1.1 HDFS 設計想法
2.1.2 HDFS 架構與基本存放裝置單元
2.2 HDFS 資料存取流程分析
2.2.1 HDFS 資料儲存位置與複製詳解
2.2.2 HDFS 輸入串流程分析
2.2.3 HDFS 輸出串流程分析
2.3 HDFS 命令列操作詳解
2.3.1 HDFS 中4 個通用的命令列操作
2.3.2 HDFS 檔案18 個基本命令列的操作
2.3.3 HDFS 檔案存取權限詳解
2.4 透過Web 瀏覽HDFS 檔案
2.5 HDFS 介面使用詳解
2.5.1 使用FileSystem API 操作HDFS中的內容
2.5.2 使用FileSystem API 讀取資料詳解
2.5.3 使用FileSystem API 寫入資料詳解
2.6 HDFS 檔案同步與平行處理存取
本章小結
第3章 「 吃下去吐出來」--Hadoop 檔案I/O 系統詳解
3.1 Hadoop 的壓縮類型介紹
3.2 Hadoop 的壓縮類別庫
3.2.1 從一個簡單的實例開始
3.2.2 CompressionCodec 介面
3.2.3 CompressionCodecFactory 類別詳解
3.2.4 壓縮池
3.2.5 在Hadoop 中使用壓縮
3.3 I/O 中序列化類型詳解
3.3.1 Text 類別詳解
3.3.2 IntWritable 類別詳解
3.3.3 ObjectWritable 類別詳解
3.3.4 NullWritable 類別詳解
3.3.5 ByteWritable 類別詳解
3.4 實現自訂的Writable 類型
3.4.1 Writable 介面
3.4.2 WritableComparable 介面與RawComparator 介面
3.4.3 自訂的Writable 類別
3.4.4 為了更快的比較
3.5 Hadoop 中小檔案處理詳解
3.5.1 SequenceFile 詳解
3.5.2 MapFile 詳解
本章小結
第4章 「大象的大腦」--MapReduce 框架結構與原始程式分析
4.1 MapReduce 框架結構與原始程式分析
4.1.1 MapReduce 框架分析與執行過程詳解
4.1.2 MapReduce 輸入輸出與原始程式分析
4.1.3 MapReduce 中Job 類別詳解
4.2 程式設計實戰:經典的MapReduce 單字計數程式
4.2.1 準備工作
4.2.2 MapReduce 過程分析
4.2.3 計數程式的MapReduce 實現
4.2.4 計數程式的main 方法
4.2.5 注意事項
4.2.6 執行結果
4.2.7 Mapper 中的Combiner 詳解
本章小結
第5章5 深入! MapReduce 設定與測試
5.1 MapReduce 環境變數設定詳解
5.1.1 使用XML 設定新的設定檔
5.1.2 修改已有的設定檔
5.1.3 輔助類別ToolRunner、Configured 詳解
5.2 使用MRUnit 對MapReduce 進行測試
5.2.1 MRUnit 簡介與使用
5.2.2 使用MRUnit 完成Mapper 單元測試
5.2.3 使用MRUnit 完成Reduce 單元測試
5.2.4 使用MRUnit 完成MapReduce 單元測試
5.3 在本機磁碟上進行MapReduce 測試
5.3.1 虛擬環境欺騙
5.3.2 在Eclipse 中設定Hadoop 外掛程式
5.3.3 撰寫本機測試程式
5.4 MapReduce 計數器
5.4.1 使用計數器的MapReduce 程式設計
5.4.2 透過Web 介面進行工作分析
5.4.3 透過Web 介面檢視計數器
本章小結
第6章 大象的思考流程--MapReduce 執行流程詳解
6.1 經典MapReduce 工作的工作流程
6.1.1 ClientNode 執行工作的初始化
6.1.2 訊息傳遞
6.1.3 MapReduce 工作的執行
6.1.4 工作的完成與狀態更新
6.2 經典MapReduce 工作例外處理詳解
6.2.1 MapReduce 工作例外的處理方式
6.2.2 MapReduce 工作失敗的處理方式
6.3 經典MapReduce 工作的資料處理過程
6.3.1 Map 端的輸入資料處理過程
6.3.2 Reduce 端的輸入資料處理過程
6.3.3 Java 虛擬機器重用
6.4 MapReduce 2.0(YARN)工作流程詳解
6.4.1 YARN 概述
6.4.2 YARN 工作過程分析
6.4.3 YARN 的例外處理
本章小結
第7章7 更強的大象--MapReduce 進階程式設計( 續)
7.1 MapReduce 程式設計預設格式類型詳解
7.1.1 map 與reduce 方法的預設輸入輸出類型
7.1.2 自訂輸入輸出類型設定
7.1.3 自訂全域類型變數設定要求
7.1.4 預設的MapReduce 程式設定
7.2 InputFormat 輸入格式詳解
7.2.1 輸入記錄與分區
7.2.2 InputFormat 原始程式及執行過程分析
7.2.3 實現自己的RecordReader 類別
7.2.4 自訂的FileInputFormat 類別
7.2.5 一些常用的InputFormat 類別詳解
7.3 OutputFormat 輸出格式詳解
7.3.1 OutputFormat 預設輸出格式
7.3.2 自訂OutputFormat 輸出格式
7.3.3 對Reduce 工作數進行設定
7.3.4 OutputFormat 分區類別Partitioner 詳解
7.4 多種輸入與輸出使用介紹
7.4.1 MultipleInputs 多種輸入方式詳解
7.4.2 MultipleOutputs 多種輸出方式詳解
本章小結
第8章8 MapReduce 相關特性詳解
8.1 MapReduce 計數器
8.1.1 Hadoop 框架內建的計數器
8.1.2 自訂計數器
8.1.3 動態計數器
8.1.4 取得計數器值
8.2 排序與尋找
8.2.1 普通排序規則與尋找
8.2.2 使用MapFile 進行排序與尋找
8.3 對輸出結果的值分組排序
8.3.1 準備工作
8.3.2 對結果進行分組處理
8.3.3 對鍵的二次排序
8.3.4 自訂輸出分組
8.4 程式設計實戰:使用二次排序自動尋找最小值
8.4.1 想法分析
8.4.2 驗證輸入輸出結果
8.4.3 對結果進行二次排序
8.4.4 對結果進行分組
8.4.5 分割處理排序與分組
8.4.6 驗證結果
本章小結
第9章9 啤酒與尿布--MapReduce 連接與資料採擷初步
9.1 對於同樣格式資料進行MapReduce 連接
9.2 對於不同格式資料進行MapReduce 連接
9.3 不能說的秘密—啤酒與尿布
9.3.1 銷售清單的秘密
9.3.2 設計程式
9.3.3 程式執行結果
9.4 資料採擷初步
本章小結
第10章10 MapReduce 實戰程式設計及深度分析
10.1 程式設計實戰:自訂資料庫中讀取資料
10.1.1 準備工作
10.1.2 程式分析
10.1.3 自訂SQLInputFormat
10.1.4 使用自訂程式從資料庫中讀取資料
10.1.5 程式執行及資料分析
10.1.6 使用合併記錄進行效能最佳化
10.2 程式設計實戰:串聯尋找共同轉載微博
10.2.1 應用分析
10.2.2 第一步表轉換
10.2.3 建立關注連接
10.2.4 自訂的OutputFormat .
10.2.5 串聯解決共同轉載微博
10.2.6 效能最佳化及後續處理
10.3 程式設計實戰:雲端儲存模型
10.3.1 應用分析
10.3.2 Tomcat 簡介
10.3.3 設定Tomcat 伺服器
10.3.4 測試Tomcat 伺服器
10.3.5 在Eclipse 中設定Tomcat
10.3.6 建立雲端儲存目錄
10.3.7 取得雲端儲存列表
10.3.8 將檔案上傳至資料雲端儲存中
10.3.9 刪除檔案
10.3.10 下載雲端儲存檔案
10.3.11 程式執行與效能最佳化
10.4 程式設計實戰:多文件相似關鍵字檢索
10.4.1 應用分析
10.4.2 自訂工作處理類別
10.4.3 程式執行及後續分析
10.5 程式設計實戰:學生成績整理與分組
10.5.1 應用分析
10.5.2 自訂的ScoreWritable
10.5.3 自訂的MapReduce
10.5.4 自訂的分組
10.5.5 程式執行結果
10.5.6 採用更多分組類型
本章小結
第1章1 大象也會跳舞
1.1 巨量資料時代
1.2 巨量資料分析時代
1.3 簡單、粗暴、有效--這就是Hadoop
1.4 MapReduce 與Hadoop
1.5 看,大象也會跳舞
本章小結
第2章2 大象的肚子--HDFS 檔案系統詳解
2.1 HDFS 基礎詳解
2.1.1 HDFS 設計想法
2.1.2 HDFS 架構與基本存放裝置單元
2.2 HDFS 資料存取流程分析
2.2.1 HDFS 資料儲存位置與複製詳解
2.2.2 HDFS 輸入串流程分析
2.2.3 HDFS 輸出串流程分析
2.3 HDFS 命令列操作詳解
2.3.1 HDFS 中4 個通用的命令列操作
2.3.2 HDFS 檔案18 個基本命令列的操作
2.3.3 HDFS 檔案存取權限詳解
2.4 透過Web 瀏覽HDFS 檔案
2.5 HDFS 介面使用詳解
2.5.1 使用FileSystem API 操作HDFS中的內容
2.5.2 使用FileSystem API 讀取資料詳解
2.5.3 使用FileSystem API 寫入資料詳解
2.6 HDFS 檔案同步與平行處理存取
本章小結
第3章 「 吃下去吐出來」--Hadoop 檔案I/O 系統詳解
3.1 Hadoop 的壓縮類型介紹
3.2 Hadoop 的壓縮類別庫
3.2.1 從一個簡單的實例開始
3.2.2 CompressionCodec 介面
3.2.3 CompressionCodecFactory 類別詳解
3.2.4 壓縮池
3.2.5 在Hadoop 中使用壓縮
3.3 I/O 中序列化類型詳解
3.3.1 Text 類別詳解
3.3.2 IntWritable 類別詳解
3.3.3 ObjectWritable 類別詳解
3.3.4 NullWritable 類別詳解
3.3.5 ByteWritable 類別詳解
3.4 實現自訂的Writable 類型
3.4.1 Writable 介面
3.4.2 WritableComparable 介面與RawComparator 介面
3.4.3 自訂的Writable 類別
3.4.4 為了更快的比較
3.5 Hadoop 中小檔案處理詳解
3.5.1 SequenceFile 詳解
3.5.2 MapFile 詳解
本章小結
第4章 「大象的大腦」--MapReduce 框架結構與原始程式分析
4.1 MapReduce 框架結構與原始程式分析
4.1.1 MapReduce 框架分析與執行過程詳解
4.1.2 MapReduce 輸入輸出與原始程式分析
4.1.3 MapReduce 中Job 類別詳解
4.2 程式設計實戰:經典的MapReduce 單字計數程式
4.2.1 準備工作
4.2.2 MapReduce 過程分析
4.2.3 計數程式的MapReduce 實現
4.2.4 計數程式的main 方法
4.2.5 注意事項
4.2.6 執行結果
4.2.7 Mapper 中的Combiner 詳解
本章小結
第5章5 深入! MapReduce 設定與測試
5.1 MapReduce 環境變數設定詳解
5.1.1 使用XML 設定新的設定檔
5.1.2 修改已有的設定檔
5.1.3 輔助類別ToolRunner、Configured 詳解
5.2 使用MRUnit 對MapReduce 進行測試
5.2.1 MRUnit 簡介與使用
5.2.2 使用MRUnit 完成Mapper 單元測試
5.2.3 使用MRUnit 完成Reduce 單元測試
5.2.4 使用MRUnit 完成MapReduce 單元測試
5.3 在本機磁碟上進行MapReduce 測試
5.3.1 虛擬環境欺騙
5.3.2 在Eclipse 中設定Hadoop 外掛程式
5.3.3 撰寫本機測試程式
5.4 MapReduce 計數器
5.4.1 使用計數器的MapReduce 程式設計
5.4.2 透過Web 介面進行工作分析
5.4.3 透過Web 介面檢視計數器
本章小結
第6章 大象的思考流程--MapReduce 執行流程詳解
6.1 經典MapReduce 工作的工作流程
6.1.1 ClientNode 執行工作的初始化
6.1.2 訊息傳遞
6.1.3 MapReduce 工作的執行
6.1.4 工作的完成與狀態更新
6.2 經典MapReduce 工作例外處理詳解
6.2.1 MapReduce 工作例外的處理方式
6.2.2 MapReduce 工作失敗的處理方式
6.3 經典MapReduce 工作的資料處理過程
6.3.1 Map 端的輸入資料處理過程
6.3.2 Reduce 端的輸入資料處理過程
6.3.3 Java 虛擬機器重用
6.4 MapReduce 2.0(YARN)工作流程詳解
6.4.1 YARN 概述
6.4.2 YARN 工作過程分析
6.4.3 YARN 的例外處理
本章小結
第7章7 更強的大象--MapReduce 進階程式設計( 續)
7.1 MapReduce 程式設計預設格式類型詳解
7.1.1 map 與reduce 方法的預設輸入輸出類型
7.1.2 自訂輸入輸出類型設定
7.1.3 自訂全域類型變數設定要求
7.1.4 預設的MapReduce 程式設定
7.2 InputFormat 輸入格式詳解
7.2.1 輸入記錄與分區
7.2.2 InputFormat 原始程式及執行過程分析
7.2.3 實現自己的RecordReader 類別
7.2.4 自訂的FileInputFormat 類別
7.2.5 一些常用的InputFormat 類別詳解
7.3 OutputFormat 輸出格式詳解
7.3.1 OutputFormat 預設輸出格式
7.3.2 自訂OutputFormat 輸出格式
7.3.3 對Reduce 工作數進行設定
7.3.4 OutputFormat 分區類別Partitioner 詳解
7.4 多種輸入與輸出使用介紹
7.4.1 MultipleInputs 多種輸入方式詳解
7.4.2 MultipleOutputs 多種輸出方式詳解
本章小結
第8章8 MapReduce 相關特性詳解
8.1 MapReduce 計數器
8.1.1 Hadoop 框架內建的計數器
8.1.2 自訂計數器
8.1.3 動態計數器
8.1.4 取得計數器值
8.2 排序與尋找
8.2.1 普通排序規則與尋找
8.2.2 使用MapFile 進行排序與尋找
8.3 對輸出結果的值分組排序
8.3.1 準備工作
8.3.2 對結果進行分組處理
8.3.3 對鍵的二次排序
8.3.4 自訂輸出分組
8.4 程式設計實戰:使用二次排序自動尋找最小值
8.4.1 想法分析
8.4.2 驗證輸入輸出結果
8.4.3 對結果進行二次排序
8.4.4 對結果進行分組
8.4.5 分割處理排序與分組
8.4.6 驗證結果
本章小結
第9章9 啤酒與尿布--MapReduce 連接與資料採擷初步
9.1 對於同樣格式資料進行MapReduce 連接
9.2 對於不同格式資料進行MapReduce 連接
9.3 不能說的秘密—啤酒與尿布
9.3.1 銷售清單的秘密
9.3.2 設計程式
9.3.3 程式執行結果
9.4 資料採擷初步
本章小結
第10章10 MapReduce 實戰程式設計及深度分析
10.1 程式設計實戰:自訂資料庫中讀取資料
10.1.1 準備工作
10.1.2 程式分析
10.1.3 自訂SQLInputFormat
10.1.4 使用自訂程式從資料庫中讀取資料
10.1.5 程式執行及資料分析
10.1.6 使用合併記錄進行效能最佳化
10.2 程式設計實戰:串聯尋找共同轉載微博
10.2.1 應用分析
10.2.2 第一步表轉換
10.2.3 建立關注連接
10.2.4 自訂的OutputFormat .
10.2.5 串聯解決共同轉載微博
10.2.6 效能最佳化及後續處理
10.3 程式設計實戰:雲端儲存模型
10.3.1 應用分析
10.3.2 Tomcat 簡介
10.3.3 設定Tomcat 伺服器
10.3.4 測試Tomcat 伺服器
10.3.5 在Eclipse 中設定Tomcat
10.3.6 建立雲端儲存目錄
10.3.7 取得雲端儲存列表
10.3.8 將檔案上傳至資料雲端儲存中
10.3.9 刪除檔案
10.3.10 下載雲端儲存檔案
10.3.11 程式執行與效能最佳化
10.4 程式設計實戰:多文件相似關鍵字檢索
10.4.1 應用分析
10.4.2 自訂工作處理類別
10.4.3 程式執行及後續分析
10.5 程式設計實戰:學生成績整理與分組
10.5.1 應用分析
10.5.2 自訂的ScoreWritable
10.5.3 自訂的MapReduce
10.5.4 自訂的分組
10.5.5 程式執行結果
10.5.6 採用更多分組類型
本章小結
ISBN: 9789863795872