hadoop高級編程電子版關注用于構建先進的、基于Hadoop的企業級應用的架構和方案,并為實現現實的解決方案提供深入的、代碼級的講解。本書還會帶你領略數據設計以及數據設計如何影響實現。本書解釋了MapReduce的工作原理,并展示了如何在MapReduce中重新定制特定的業務問題。在整本書中,你將會發現深入的Java代碼示例,這些代碼示例可以直接使用,它們均源自于已經成功地構建和部署的應用程序。
hadoop高級編程電子版目錄
第1章 大數據和Hadoop生態系統
1.1 當大數據遇見Hadoop
1.1.1 Hadoop:直面大數據的挑戰
1.1.2 商業世界中的數據科學
1.2 Hadoop生態系統
1.3 Hadoop核心組件
1.4 Hadoop發行版
1.5 使用Hadoop開發企業級應用
1.6 小結
第2章 Hadoop數據存儲
2.1 HDFS
2.1.1 HDFS架構
2.1.2 使用HDFS文件
2.1.3 Hadoop特定的文件類型
2.1.4 HDFS聯盟和高可用性
2.2 HBase
2.2.1 HBase架構
2.2.2 HBase結構設計
2.2.3 HBase編程
2.2.4 HBase新特性
2.3 將HDFS和HBase的組合用于高效數據存儲
2.4 使用Apache Avro
2.5 利用HCatalog管理元數據
2.6 為應用程序選擇合適的Hadoop數據組織形式
2.7 小結
第3章 使用MapReduce處理數據
3.1 了解MapReduce
3.1.1 MapReduce執行管道
3.1.2 MapReduce中的運行時協調和任務管理
3.2 第一個MapReduce應用程序
3.3 設計MapReduce實現
3.3.1 將MapReduce用作并行處理框架
3.3.2 使用MapReduce進行簡單的數據處理
3.3.3 使用MapReduce構建連接
3.3.4 構建迭代式MapReduce應用程序
3.3.5 是否使用MapReduce
3.3.6 常見的MapReduce設計陷阱
3.4 小結
第4章 自定義MapReduce執行
4.1 使用InputFormat控制MapReduce執行
4.1.1 為計算密集型應用程序實現InputFormat
4.1.2 實現InputFormat以控制Map的數量
4.1.3 實現用于多個HBase表的InputFormat
4.2 使用自定義RecordReader以自己的方式讀取數據
4.2.1 實現基于隊列的RecordReader
4.2.2 為XML數據實現RecordReader
4.3 使用自定義輸出格式組織輸出數據
4.4 使用自定義記錄寫入器以自己的方式寫入數據
4.5 使用組合器優化MapReduce執行
4.6 使用分區器控制Reducer執行
4.7 在Hadoop中使用非Java代碼
4.7.1 Pipes
4.7.2 Hadoop Streaming
4.7.3 使用JNI
4.8 小結
第5章 構建可靠的MapReduce應用程序
5.1 單元測試MapReduce應用程序
5.1.1 測試Mapper
5.1.2 測試Reducer
5.1.3 集成測試
5.2 使用Eclipse進行本地應用程序測試
5.3 將日志用于Hadoop測試
5.4 使用作業計數器報告指標
5.5 MapReduce中的防御性編程
5.6 小結
第6章 使用Oozie自動化數據處理
6.1 認識Oozie
6.2 Oozie Workflow
6.2.1 在Oozie Workflow中執行異步操作
6.2.2 Oozie的恢復能力
6.2.3 Oozie Workflow作業的生命周期
6.3 Oozie Coordinator
6.4 Oozie Bundle
6.5 用表達式語言對Oozie進行參數化
6.5.1 Workflow函數
6.5.2 Coordinator函數
6.5.3 Bundle函數
6.5.4 其他EL函數
6.6 Oozie作業執行模型
6.7 訪問Oozie
6.8 Oozie SLA
6.9 小結
第7章 使用Oozie
7.1 使用探測包驗證位置相關信息的正確性
7.2 設計基于探測包的地點正確性驗證
7.3 設計Oozie Workflow
7.4 實現Oozie Workflow應用程序
7.4.1 實現數據準備Workflow
7.4.2 實現考勤指數和聚類探測包串Workflow
7.5 實現 Workflow行為
7.5.1 發布來自java動作的執行上下文
7.5.2 在Oozie Workflow中使用MapReduce作業
7.6 實現Oozie Coordinator應用程序
7.7 實現Oozie Bundle應用程序
7.8 部署、測試和執行Oozie應用程序
7.8.1 部署Oozie應用程序
7.8.2 使用Oozie CLI執行Oozie應用程序
7.8.3 向Oozie作業傳遞參數
7.9 使用Oozie控制臺獲取Oozie應用程序信息
7.9.1 了解Oozie控制臺界面
7.9.2 獲取Coordinator作業信息
7.10 小結
第8章 高級Oozie特性
8.1 構建自定義Oozie Workflow動作
8.1.1 實現自定義Oozie Workflow動作
8.1.2 部署Oozie自定義Workflow動作
8.2 向Oozie Workflow添加動態執行
8.2.1 總體實現方法
8.2.2 一個機器學習模型、參數和算法
8.2.3 為迭代過程定義Workflow
8.2.4 動態Workflow生成
8.3 使用Oozie Java API
8.4 在Oozie應用中使用uber jar包
8.5 數據吸收傳送器
8.6 小結
第9章 實時Hadoop
9.1 現實世界中的實時應用
9.2 使用HBase來實現實時應用
9.2.1 將HBase用作圖片管理系統
9.2.2 將HBase用作Lucene后端
9.3 使用專門的實時Hadoop查詢系統
9.3.1 Apache Drill
9.3.2 Impala
9.3.3 實時查詢和MapReduce的對比
9.4 使用基于Hadoop的事件處理系統
9.4.1 HFlame
9.4.2 Storm
9.4.3 事件處理和MapReduce的對比
9.5 小結
第10章 Hadoop安全
10.1 簡要的歷史:理解Hadoop安全的挑戰
10.2 認證
10.2.1 Kerberos認證
10.2.2 委派安全憑據
10.3 授權
10.3.1 HDFS文件訪問權限
10.3.2 服務級授權
10.3.3 作業授權
10.4 Oozie認證和授權
10.5 網絡加密
10.6 使用Rhino項目增強安全性
10.6.1 HDFS磁盤級加密
10.6.2 基于令牌的認證和統一的授權框架
10.6.3 HBase單元格級安全
10.7 將所有內容整合起來--保證Hadoop安全的最佳實踐
10.7.1 認證
10.7.2 授權
10.7.3 網絡加密
10.7.4 敬請關注Hadoop的增強功能
10.8 小結
第11章 在AWS上運行Hadoop應用
11.1 初識AWS
11.2 在AWS上運行Hadoop的可選項
11.2.1 使用EC2實例的自定義安裝
11.2.2 彈性MapReduce
11.2.3 做出選擇前的額外考慮
11.3 理解EMR-Hadoop的關系
11.3.1 EMR架構
11.3.2 使用S3存儲
11.3.3 最大化EMR的使用
11.3.4 利用CloudWatch和其他AWS組件
11.3.5 訪問和使用EMR
11.4 使用AWS S3
11.4.1 理解桶的使用
11.4.2 使用控制臺瀏覽內容
11.4.3 在S3中編程訪問文件
11.4.4 使用MapReduce上傳多個文件到S3
11.5 自動化EMR作業流創建和作業執行
11.6 管理EMR中的作業執行
11.6.1 在EMR集群上使用Oozie
11.6.2 AWS 簡單工作流
11.6.3 AWS數據管道
11.7 小結
第12章 為Hadoop實現構建企業級安全解決方案
12.1 企業級應用的安全顧慮
12.1.1 認證
12.1.2 授權
12.1.3 保密性
12.1.4 完整性
12.1.5 審計
12.2 Hadoop安全沒有為企業級應用原生地提供哪些機制
12.2.1 面向數據的訪問控制
12.2.2 差分隱私
12.2.3 加密靜止的數據
12.2.4 企業級安全集成
12.3 保證使用Hadoop的企業級應用安全的方法
12.3.1 使用Accumulo進行訪問控制保護
12.3.2 加密靜止數據
12.3.3 網絡隔離和分隔方案
12.4 小結
第13章 Hadoop的未來
13.1 使用DSL簡化MapReduce編程
13.1.1 什么是DSL
13.1.2 Hadoop的DSL
13.2 更快、更可擴展的數據處理
13.2.1 Apache YARN
13.2.2 Tez
13.3 安全性的改進
13.4 正在出現的趨勢
13.5 小結
附錄 有用的閱讀
- PC官方版
- 安卓官方手機版
- IOS官方手機版