本書作者基于對Hadoop系統(tǒng)的實踐,深入淺出地對Hadoop進行了詳細的講解,包含大量的實例和技巧,可幫助有一定基礎的開發(fā)者快速掌握分布式系統(tǒng)。主要內容包括:第1章~第4章講解大數(shù)據(jù)系統(tǒng)的基本概念、Hadoop系統(tǒng)的關鍵概念,以及進行Hadoop平臺管理的關鍵概念要素。第5章~第7章是本書的重點,深入分析了MapReduce框架,不僅包括MapReduce框架的API,還介紹MapReduce框架的更復雜概念及其設計理念。第8章~第14章介紹Hadoop生態(tài)系統(tǒng),包括支持MapReduce程序的單元測試和集成測試框架、Hadoop系統(tǒng)的監(jiān)控和日志系統(tǒng)、Hive框架、Pig和Crunch框架、HCatalog框架、Hadoop日志流處理、HBase等。第15章~第17章介紹了數(shù)據(jù)科學基本概念及應用、云計算實例、分布式下載服務實例等。
目 錄 Contents
譯者序
作者簡介
前言
第1章為什么會有大數(shù)據(jù)
1.1什么是大數(shù)據(jù)
1.2大數(shù)據(jù)技術背后的核心思想
1.2.1把數(shù)據(jù)分發(fā)到多個節(jié)點
1.2.2把計算邏輯移動到數(shù)據(jù)附近
1.2.3計算節(jié)點進行本地數(shù)據(jù)處理
1.2.4優(yōu)選順序讀,次之隨機讀
1.2.5一個例子
1.3大數(shù)據(jù)的編程模型
1.3.1大規(guī)模并行處理數(shù)據(jù)庫系統(tǒng)
1.3.2內存數(shù)據(jù)庫系統(tǒng)
1.3.3MapReduce系統(tǒng)
1.3.4整體同步并行系統(tǒng)
1.4大數(shù)據(jù)和事務性系統(tǒng)
1.5我們能處理多大的數(shù)據(jù)量
1.5.1一個計算密集型的例子
1.5.2Amdhal定律
1.6大數(shù)據(jù)商業(yè)用例
1.7本章小結
第2章Hadoop中的概念
2.1Hadoop簡介
2.2MapReduce編程模型簡介
2.3Hadoop系統(tǒng)的組成
2.3.1Hadoop 分布式文件系統(tǒng)
2.3.2輔助名稱節(jié)點
2.3.3任務跟蹤器
2.3.4作業(yè)跟蹤器
2.4Hadoop 2.
2.4.1容器
2.4.2節(jié)點管理器
2.4.3資源管理器
2.4.4應用程序管理器
2.4.5分步詳解YARN請求
2.5HDFS 的高可用性
2.6本章小結
第3章初識Hadoop框架
3.1安裝類型
3.1.1單機模式
3.1.2偽分布式集群模式
3.1.3多節(jié)點集群安裝模式
3.1.4基于Amazon EMR預安裝模式
3.2使用Cloudera虛擬機搭建開發(fā)環(huán)境
3.3一個MapReduce程序的組成
3.4第一個Hadoop程序
3.4.1以本地模式運行程序的必要條件
3.4.2使用舊API編寫的單詞計數(shù)程序
3.4.3構建程序
3.4.4在集群模式下運行單詞計數(shù)程序
3.4.5使用新API編寫的單詞計數(shù)程序
3.4.6構建程序
3.4.7在集群模式下運行單詞計數(shù)程序
3.5Hadoop作業(yè)中的第三方函數(shù)庫
3.6本章小結
第4章Hadoop系統(tǒng)管理
4.1Hadoop的配置文件
4.2配置Hadoop守護進程
4.3Hadoop配置文件的優(yōu)先級
4.4深入探究Hadoop配置文件
4.4.1coresite.xml
4.4.2hdfs*.xml
4.4.3mapredsite.xml
4.4.4yarnsite.xml
4.4.5YARN中的內存分配
4.5調度器
4.5.1計算能力調度器
4.5.2公平調度器
4.5.3公平調度器配置
4.5.4 yarnsite.xml 配置
4.5.5策略文件的格式和配置
4.5.6按照drf策略來確定優(yōu)勢資源的分配
4.6從屬文件
4.7機架感知
4.8 集群管理工具
4.8.1檢查HDFS
4.8.2 HDFS管理命令行
4.8.3 均衡HDFS上的數(shù)據(jù)分布
4.8.4從HDFS中復制海量數(shù)據(jù)
4.9本章小結
第5章MapReduce開發(fā)基礎
5.1 Hadoop和數(shù)據(jù)處理
5.2 航空公司數(shù)據(jù)集介紹
5.2.1 準備開發(fā)環(huán)境
5.2.2 準備Hadoop系統(tǒng)
5.3 MapReduce編程模式
5.3.1 只有Map階段的作業(yè)(SELECT和WHERE查詢)
5.3.2 問題定義―SELECT子句
5.3.3 問題定義―WHERE子句
5.3.4 Map和Reduce作業(yè)(聚合查詢)
5.3.5 問題定義―GROUP BY和SUM子句
5.3.6 應用Combiner提高Aggregation性能
5.3.7 問題定義―優(yōu)化后的Aggregators
5.3.8 Partitioner的作用
5.3.9 問題定義―按月分離航空數(shù)據(jù)
5.4 綜合分析
5.5 本章小結
第6章MapReduce開發(fā)進階
6.1 MapReduce編程模式
6.2 Hadoop I/O 介紹
6.3 問題定義―排序
6.3.1 主要挑戰(zhàn):全排序
6.3.2 在Cluster中運行Sorting作業(yè)
6.3.3 僅根據(jù)Writable鍵排序
6.3.4 根據(jù)排序回顧Hadoop的關鍵特性
6.4 問題定義―分析連續(xù)的記錄
6.4.1 支持二次排序的重要組件
6.4.2 在沒有Grouping Comparator的情況下實現(xiàn)Secondary Sort
6.4.3 在Cluster中運行SecondarySort作業(yè)
6.4.4 利用Secondary Sort回顧Hadoop的關鍵特性
6.5 問題定義―使用MapReducer進行連接
6.5.1 處理多輸入:MultipleInputs 類
6.5.2 具備多個輸入的Mapper類
6.5.3 自定義 Partitioner: CarrierCodeBasedPartioner
6.5.4 在Reducer中實現(xiàn)連接
6.5.5 在集群中運行MapReduce連接作業(yè)
6.5.6 探討與MapReduce相關的Hadoop主要特性
6.6 問題定義―使用MapOnly 作業(yè)進行連接
6.6.1 基于DistributeCache的解決方案
6.6.2 在集群中運行MapOnly的連接作業(yè)
6.6.3 總結探討MapOnly連接時的Hadoop關鍵特性
6.7 在MR作業(yè)中保存結果到多輸出文件
6.8 使用計數(shù)器收集統(tǒng)計數(shù)據(jù)
6.9 本章小結
第7章 Hadoop輸入/輸出
7.1 壓縮方式
7.1.1 壓縮內容的選擇
7.1.2 各種壓縮方式
7.1.3 配置壓縮方式
7.2 Hadoop的I/O處理過程內部
7.2.1 Inputformat
7.2.2 OutputFormat
7.2.3 自定義OutputFormat:將文本轉換成XML
7.2.4 自定義 InputFormat:使用自定義的XML文件
7.3 Hadoop文件
7.3.1 SequenceFile
7.3.2 MapFiles
7.3.3 Avro Files
7.4 本章小結
第8章 測試Hadoop程序
8.1 回顧一下單詞統(tǒng)計的程序
8.2 MRUnit概述
8.2.1 安裝MRUnit
8.2.2 MRUnit 核心類
8.2.3 編寫一個MRUnit測試用例
8.2.4 測試計數(shù)器
8.2.5 MRUnit的特性
8.2.6 MRUnit的局限性
8.3 用LocalJobRunner測試
8.3.1 setUp( )方法
8.3.2 LocalJobRunner的局限性
8.4 用MiniMRCluster測試
8.4.1 配置開發(fā)環(huán)境
8.4.2 MiniMRCluster例子
8.4.3 MiniMRCluster的局限性
8.5 對訪問網(wǎng)絡資源的MR作業(yè)進行測試
8.6 本章小結
第9章Hadoop的監(jiān)控
9.1 在Hadoop MapReduce Jobs中寫日志消息
9.2 在Hadoop MapReduce Jobs中查看日志消息
9.3 在Hadoop 2.x中使用日志管理
9.3.1 Hadoop 2.x中的日志存儲
9.3.2 日志管理提升
9.3.3 使用基于Web的界面查看日志
9.3.4 命令行界面
9.3.5 日志的保存
9.4 Hadoop集群性能監(jiān)控
9.5 使用YARN REST API
9.6 使用供應商工具管理Hadoop集群
9.7 本章小結
第10章使用Hadoop構建數(shù)據(jù)倉庫
10.1 Apache Hive
10.1.1 安裝Hive
10.1.2 Hive的架構
10.1.3 元數(shù)據(jù)存儲
10.1.4 HiveQL編譯基礎
10.1.5 Hive使
……
第11章 使用Pig進行數(shù)據(jù)處理
第12章 HCatalog和企業(yè)級Hadoop
第13章 使用Hadoop分析日志
第14章 使用HBase構建實時系統(tǒng)
第15章 Hadoop與數(shù)據(jù)科學
第16章 Hadoop與云計算
第17章 構建YARN應用程序
附錄