Hadoop 應用開發技術詳解 Hadoop应用开发技术详解 (大数据技术丛书)

劉剛

  • 出版商: 機械工業
  • 出版日期: 2014-01-10
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 408
  • ISBN: 7111452445
  • ISBN-13: 9787111452447
  • 相關分類: Hadoop

已絕版

買這商品的人也買了...

相關主題

商品描述

<內容簡介>

《Hadoop應用開發技術詳解》由資深Hadoop技術專家劉剛撰寫,系統、全面、深入地講解了Hadoop開發者需要掌握的技術和知識,包括HDFS的原理和應用、Hadoop文件I∕O的原理和應用、MapReduce的原理和高級應用、MapReduce的編程方法和技巧,以及Hive、HBase和Mahout等技術和工具的使用。並且提供大量基於實際生產環境的案例,實戰性非常強。
    《Hadoop應用開發技術詳解》全書一共12章。第1?2章詳細地介紹了Hadoop的生態系統、關鍵技術以及安裝和配置;第3章是MapReduce的使用入門,讓讀者瞭解整個開發過程;第4?5章詳細講解了分佈式文件系統HDFS和Hadoop的文件I∕O;第6章分析了MapReduce的工作原理;第7章講解瞭如何利用Eclipse來編譯Hadoop的源代碼,以及如何對Hadoop應用進行測試和調試;第8?9章細緻地講解了MapReduce的開發方法和高級應用;第10?12章系統地講解了Hive、HBase和Mahout。

<目錄>

第1章  Hadoop概述
1.1  Hadoop起源
1.1.1  Google與Hadoop模塊
1.1.2  為什麼會有Hadoop
1.1.3  Hadoop版本介紹
1.2  Hadoop生態系統
1.3  Hadoop常用項目介紹
1.4  Hadoop在國內的應用
1.5  本章小結
第2章  Hadoop安裝
2.1  Hadoop環境安裝配置
2.1.1  安裝VMware
2.1.2  安裝Ubuntu
2.1.3  安裝VMwareTools
2.1.4  安裝JDK
2.2  Hadoop安裝模式
2.2.1  單機安裝
2.2.2  偽分佈式安裝
2.2.3  分佈式安裝
2.3  如何使用Hadoop
2.3.1  Hadoop的啟動與停止
2.3.2  Hadoop配置文件
2.4  本章小結
第3章  MapReduce快速入門
3.1  WordCount實例準備開發環境
3.1.1  使用Eclipse創建一個Java工程
3.1.2  導入Hadoop的JAR文件
3.2  MapReduce代碼的實現
3.2.1  編寫WordMapper類
3.2.2  編寫WordReducer類
3.2.3  編寫WordMain驅動類
3.3  打包、部署和運行
3.3.1  打包成JAR文件
3.3.2  部署和運行
3.3.3  測試結果
3.4  本章小結
第4章  Hadoop分佈式文件系統詳解
4.1  認識HDFS
4.1.1  HDFS的特點
4.1.2  Hadoop文件系統的接口
4.1.3  HDFS的Web服務
4.2  HDFS架構
4.2.1  機架
4.2.2  數據塊
4.2.3  元數據節點
4.2.4  數據節點
4.2.5  輔助元數據節點
4.2.6  名字空間
4.2.7  數據複製
4.2.8  塊備份原理
4.2.9  機架感知
4.3  Hadoop的RPC機制
4.3.1  RPC的實現流程
4.3.2  RPC的實體模型
4.3.3  文件的讀取
4.3.4  文件的寫入
4.3.5  文件的一致模型
4.4  HDFS的HA機制
4.4.1  HA集群
4.4.2  HA架構
4.4.3  為什麼會有HA機制
4.5  HDFS的Federation機制
4.5.1  單個NameNode的HDFS架構的局限性
4.5.2  為什麼引入Federation機制
4.5.3  Federation架構
4.5.4  多個名字空間的管理問題
4.6  Hadoop文件系統的訪問
4.6.1  安全模式
4.6.2  HDFS的Shell訪問
4.6.3  HDFS處理文件的命令
4.7  JavaAPI接口
4.7.1  HadoopURL讀取數據
4.7.2  FileSystem類
4.7.3  FileStatus類
4.7.4  FSDataInputStream類
4.7.5  FSDataOutputStream類
4.7.6  列出HDFS下所有的文件
4.7.7  文件的匹配
4.7.8  PathFilter對象
4.8  維護HDFS
4.8.1  追加數據
4.8.2  並行複製
4.8.3  升級與回滾
4.8.4  添加節點
4.8.5  刪除節點
4.9  HDFS權限管理
4.9.1  用戶身份
4.9.2  權限管理的原理
4.9.3  設置權限的Shell命令
4.9.4  超級用戶
4.9.5  HDFS權限配置參數
4.10  本章小結
第5章  Hadoop文件I/O詳解
5.1  Hadoop文件的數據結構
5.1.1  SequenceFile存儲
5.1.2  MapFile存儲
5.1.3  SequenceFile轉換為MapFile
5.2  HDFS數據完整性
5.2.1  校驗和
5.2.2  數據塊檢測程序
5.3  文件序列化
5.3.1  進程間通信對序列化的要求
5.3.2  Hadoop文件的序列化
5.3.3  Writable接口
5.3.4  WritableComparable接口
5.3.5  自定義Writable接口
5.3.6  序列化框架
5.3.7  數據序列化系統Avro
5.4  Hadoop的Writable類型
5.4.1  Writable類的層次結構
5.4.2  Text類型
5.4.3  NullWritable類型
5.4.4  ObjectWritable類型
5.4.5  GenericWritable類型
5.5  文件壓縮
5.5.1  Hadoop支持的壓縮格式
5.5.2  Hadoop中的編碼器和解碼器
5.5.3  本地庫
5.5.4  可分割壓縮LZO
5.5.5  壓縮文件性能比較
5.5.6  Snappy壓縮
5.5.7  gzip、LZO和Snappy比較
5.6  本章小結
第6章  MapReduce工作原理
6.1  MapReduce的函數式編程概念
6.1.1  列表處理
6.1.2  Mapping數據列表
6.1.3  Reducing數據列表
6.1.4  Mapper和Reducer如何工作
6.1.5  應用實例:詞頻統計
6.2  MapReduce框架結構
6.2.1  MapReduce模型
6.2.2  MapReduce框架組成
6.3  MapReduce運行原理
6.3.1  作業的提交
6.3.2  作業初始化
6.3.3  任務的分配
6.3.4  任務的執行
6.3.5  進度和狀態的更新
6.3.6  MapReduce的進度組成
6.3.7  任務完成
6.4  MapReduce容錯
6.4.1  任務失敗
6.4.2  TaskTracker失敗
6.4.3  JobTracker失敗
6.4.4  子任務失敗
6.4.5  任務失敗反覆次數的處理方法
6.5  Shuffle階段和Sort階段
6.5.1  Map端的Shuffle
6.5.2  Reduce端的Shuffle
6.5.3  Shuffle過程參數調優
6.6  任務的執行
6.6.1  推測執行
6.6.2  任務JVM重用
6.6.3  跳過壞的記錄
6.6.4  任務執行的環境
6.7  作業調度器
6.7.1  先進先出調度器
6.7.2  容量調度器
6.7.3  公平調度器
6.8  自定義Hadoop調度器
6.8.1  Hadoop調度器框架
6.8.2  編寫Hadoop調度器
6.9  YARN介紹
6.9.1  異步編程模型
6.9.2  YARN支持的計算框架
6.9.3  YARN架構
6.9.4  YARN工作流程
6.10  本章小結
第7章  Eclipse插件的應用
7.1  編譯Hadoop源碼
7.1.1  下載Hadoop源碼
7.1.2  準備編譯環境
7.1.3  編譯common組件
7.2  Eclipse安裝MapReduce插件
7.2.1  查找MapReduce插件
7.2.2  新建一個Hadooplocation
7.2.3  Hadoop插件操作HDFS
7.2.4  運行MapReduce的驅動類
7.3  MapReduce的Debug調試
7.3.1  進入Debug運行模式
7.3.2  Debug調試具體操作
7.4  單元測試框架MRUnit
7.4.1  認識MRUnit框架
7.4.2  準備測試案例
7.4.3  Mapper單元測試
7.4.4  Reducer單元測試
7.4.5  MapReduce單元測試
7.5  本章小結
第8章  MapReduce編程開發
8.1  WordCount案例分析
8.1.1  MapReduce工作流程
8.1.2  WordCount的Map過程
8.1.3  WordCount的Reduce過程
8.1.4  每個過程產生的結果
8.1.5  Mapper抽象類
8.1.6  Reducer抽象類
8.1.7  MapReduce驅動
8.1.8  MapReduce最小驅動
8.2  輸入格式
8.2.1  InputFormat接口
8.2.2  InputSplit類
8.2.3  RecordReader類
8.2.4  應用實例:隨機生成100個小數並求最大值
8.3  輸出格式
8.3.1  OutputFormat接口
8.3.2  RecordWriter類
8.3.3  應用實例:把首字母相同的單詞放到一個文件里
8.4  壓縮格式
8.4.1  如何在MapReduce中使用壓縮
8.4.2  Map作業輸出結果的壓縮
8.5  MapReduce優化
8.5.1  Combiner類
8.5.2  Partitioner類
8.5.3  分佈式緩存
8.6  輔助類
8.6.1  讀取Hadoop配置文件
8.6.2  設置Hadoop的配置文件屬性
8.6.3  GenericOptionsParser選項
8.7  Streaming接口
8.7.1  Streaming工作原理
8.7.2  Streaming編程接口參數
8.7.3  作業配置屬性
8.7.4  應用實例:抓取網頁的標題
8.8  本章小結
第9章  MapReduce高級應用
9.1  計數器
9.1.1  默認計數器
9.1.2  自定義計數器
9.1.3  獲取計數器
9.2  MapReduce二次排序
9.2.1  二次排序原理
9.2.2  二次排序的演算法流程
9.2.3  代碼實現
9.3  MapReduce中的Join演算法
9.3.1  Reduce端Join
9.3.2  Map端Join
9.3.3  半連接SemiJoin
9.4  MapReduce從MySQL讀寫數據
9.4.1  讀數據
9.4.2  寫數據
9.5  Hadoop系統調優
9.5.1  小文件優化
9.5.2  Map和Reduce個數設置
9.6  本章小結
第10章  數據倉庫工具Hive
10.1  認識Hive
10.1.1  Hive工作原理
10.1.2  Hive數據類型
10.1.3  Hive的特點
10.1.4  Hive下載與安裝
10.2  Hive架構
10.2.1  Hive用戶接口
10.2.2  Hive元數據庫
10.2.3  Hive的數據存儲
10.2.4  Hive解釋器
10.3  Hive文件格式
10.3.1  TextFile格式
10.3.2  SequenceFile格式
10.3.3  RCFile文件格式
10.3.4  自定義文件格式
10.4  Hive操作
10.4.1  表操作
10.4.2  視圖操作
10.4.3  索引操作
10.4.4  分區操作
10.4.5  桶操作
10.5  Hive複合類型
10.5.1  Struct類型
10.5.2  Array類型
10.5.3  Map類型
10.6  Hive的JOIN詳解
10.6.1  JOIN操作語法
10.6.2  JOIN原理
10.6.3  外部JOIN
10.6.4  Map端JOIN
10.6.5  JOIN中處理NULL值的語義區別
10.7  Hive優化策略
10.7.1  列裁剪
10.7.2  MapJoin操作
10.7.3  GroupBy操作
10.7.4  合併小文件
10.8  Hive內置操作符與函數
10.8.1  字符串函數
10.8.2  集合統計函數
10.8.3  複合類型操作
10.9  Hive用戶自定義函數接口
10.9.1  用戶自定義函數UDF
10.9.2  用戶自定義聚合函數UDAF
10.10  Hive的權限控制
10.10.1  角色的創建和刪除
10.10.2  角色的授權和撤銷
10.10.3  超級管理員權限
10.11  應用實例:使用JDBC開發Hive程序
10.11.1  準備測試數據
10.11.2  代碼實現
10.12  本章小結
第11章  開源數據庫HBase
11.1  認識HBase
11.1.1  HBase的特點
11.1.2  HBase訪問接口
11.1.3  HBase存儲結構
11.1.4  HBase存儲格式
11.2  HBase設計
11.2.1  邏輯視圖
11.2.2  框架結構及流程
11.2.3  Table和Region的關係
11.2.4  -ROOT-表和.META.表
11.3  關鍵演算法和流程
11.3.1  Region定位
11.3.2  讀寫過程
11.3.3  Region分配
11.3.4  RegionServer上線和下線
11.3.5  Master上線和下線
11.4  HBase安裝
11.4.1  HBase單機安裝
11.4.2  HBase分佈式安裝
11.5  HBase的Shell操作
11.5.1  一般操作
11.5.2  DDL操作
11.5.3  DML操作
11.5.4  HBaseShell腳本
11.6  HBase客戶端
11.6.1  JavaAPI交互
11.6.2  MapReduce操作HBase
11.6.3  向HBase中寫入數據
11.6.4  讀取HBase中的數據
11.6.5  Avro、REST和Thrift接口
11.7  本章小結
第12章  Mahout演算法
12.1  Mahout的使用
12.1.1  安裝Mahout
12.1.2  運行一個Mahout案例
12.2  Mahout數據表示
12.2.1  偏好Perference類
12.2.2  數據模型DataModel類
12.2.3  Mahout鏈接MySQL數據庫
12.3  認識Taste框架
12.4  Mahout推薦器
12.4.1  基於用戶的推薦器
12.4.2  基於項目的推薦器
12.4.3  SlopeOne推薦策略
12.5  推薦系統
12.5.1  個性化推薦
12.5.2  商品推薦系統案例
12.6  本章小結
附錄A  Hive內置操作符與函數
附錄B  HBase默認配置解釋
附錄C  Hadoop三個配置文件的參數含義說明