0“瘋狂”的大數據 1
0.1大數據時代 1
0.2數據就是“金庫” 3
0.3讓大數據“活”起來 4
第1篇Hadoop軍營
1 Hadoop一石激起千層浪 7
1.1Hadoop誕生――不僅僅是玩具 7
1.2Hadoop發(fā)展――各路英雄集結 8
1.3Hadoop和它的小伙伴們 10
1.4Hadoop應用場景 12
1.5小結 13
2 MapReduce奠定基石 14
2.1MapReduce設計思想 14
2.2MapReduce運行機制 19
2.2.1MapReduce的組成 19
2.2.2MapReduce作業(yè)運行流程 20
2.2.3JobTracker解剖 26
2.2.4TaskTracker解剖 34
2.2.5失敗場景分析 42
2.3MapReduce實例分析 43
2.3.1運行WordCount程序 44
2.3.2WordCount源碼分析 45
2.4小結 48
3 分布式文件系統(tǒng) 49
3.1群雄并起的DFS 49
3.2HDFS文件系統(tǒng) 51
3.2.1HDFS 設計與架構 52
3.2.2HDFS 操作與API 56
3.2.3HDFS的優(yōu)點及適用場景 60
3.2.4HDFS的缺點及改進策略 61
3.3小結 62
4 Hadoop體系的“四劍客” 63
4.1數據倉庫工具Hive 63
4.1.1Hive緣起何處 63
4.1.2Hive和數據庫的區(qū)別 65
4.1.3Hive設計思想與架構 66
4.1.4適用場景 74
4.2大數據倉庫HBase 74
4.2.1HBase因何而生 74
4.2.2HBase的設計思想和架構 77
4.2.3HBase優(yōu)化技巧 84
4.2.4HBase和Hive的區(qū)別 86
4.3Pig編程語言 87
4.3.1Pig的緣由 87
4.3.2Pig的基本架構 88
4.3.3Pig與Hive的對比 90
4.3.4Pig的執(zhí)行模式 90
4.3.5Pig Latin語言及其應用 91
4.4協(xié)管員ZooKeeper 96
4.4.1ZooKeeper是什么 96
4.4.2ZooKeeper的作用 97
4.4.3ZooKeeper的架構 98
4.4.4ZooKeeper的數據模型 100
4.4.5ZooKeeper的常用接口及操作 102
4.4.6ZooKeeper的應用場景分析 105
4.5小結 108
5 Hadoop資源管理與調度 110
5.1Hadoop調度機制 110
5.1.1FIFO 111
5.1.2計算能力調度器 111
5.1.3公平調度器 113
5.2Hadoop YARN資源調度 114
5.2.1YARN產生的背景 114
5.2.2Hadoop YARN的架構 116
5.2.3YARN的運作流程 118
5.3Apache Mesos資源調度 120
5.3.1Apache Mesos的起因 120
5.3.2Apache Mesos的架構 121
5.3.3基于Mesos的Hadoop 123
5.4Mesos與YARN對比 127
5.5小結 128
6 Hadoop集群管理之道 129
6.1Hadoop 集群管理與維護 129
6.1.1Hadoop集群管理 129
6.1.2Hadoop集群維護 131
6.2Hadoop 集群調優(yōu) 132
6.2.1Linux文件系統(tǒng)調優(yōu) 132
6.2.2Hadoop通用參數調整 133
6.2.3HDFS相關配置 133
6.2.4MapReduce相關配置 134
6.2.5Map任務相關配置 136
6.2.6HBase搭建重要的HDFS參數 137
6.3Hadoop 集群監(jiān)控 137
6.3.1Apache Ambari監(jiān)控 137
6.3.2Ganglia監(jiān)控Hadoop 138
6.4小結 138
第2篇Spark星火燎原
7 Spark寶刀出鞘 141
7.1Spark的歷史淵源 141
7.1.1Spark的誕生 141
7.1.2Spark的發(fā)展 142
7.2Spark和Hadoop MapReduce對比 143
7.3Spark的適用場景 145
7.4Spark的硬件配置 146
7.5Spark架構 147
7.5.1Spark生態(tài)架構 147
7.5.2Spark運行架構 149
7.6小結 151
8 Spark核心RDD 153
8.1RDD簡介 153
8.1.1什么是RDD 153
8.1.2為什么需要RDD 154
8.1.3RDD本體的設計 154
8.1.4RDD與分布式共享內存 155
8.2RDD的存儲級別 155
8.3RDD依賴與容錯 157
8.3.1RDD依賴關系 157
8.3.2RDD容錯機制 160
8.4RDD操作與接口 161
8.4.1RDD Transformation操作與接口 162
8.4.2RDD Action操作與接口 164
8.5RDD編程示例 165
8.6小結 166
9 Spark運行模式和流程 167
9.1Spark運行模式 167
9.1.1Spark的運行模式列表 167
9.1.2Local模式 168
9.1.3Standalone模式 169
9.1.4Spark on Mesos模式 171
9.1.5Spark on YARN 模式 173
9.1.6Spark on EGO 模式 175
9.2Spark作業(yè)流程 177
9.2.1YARN-Client模式的作業(yè)流程 178
9.2.2YARN-Cluster模式的作業(yè)流程 179
9.3小結 181
10 Shark和Spark SQL 183
10.1從Shark到Spark SQL 183
10.1.1Shark的撤退是進攻 183
10.1.2Spark SQL接力 185
10.1.3Spark SQL與普通SQL的區(qū)別 186
10.2Spark SQL應用架構 187
10.3Spark SQL之DataFrame 188
10.3.1什么是DataFrame 188
10.3.2DataFrame的創(chuàng)建 188
10.3.3DataFrame的使用 190
10.4Spark SQL運行過程分析 190
10.5小結 192
11 Spark Streaming流數據處理新貴 193
11.1Spark Streaming是什么 193
11.2Spark Streaming的架構 194
11.3Spark Streaming的操作 195
11.3.1Spark Streaming的Transformation操作 196
11.3.2Spark Streaming的Window操作 197
11.3.3Spark Streaming的Output操作 198
11.4Spark Streaming性能調優(yōu) 198
11.5小結 200
12 Spark GraphX圖計算系統(tǒng) 201
12.1圖計算系統(tǒng) 201
12.1.1圖存儲模式 202
12.1.2圖計算模式 203
12.2Spark GraphX的框架 206
12.3Spark GraphX的存儲模式 207
12.4Spark GraphX的圖運算符 208
12.5小結 211
13 Spark Cluster管理 212
13.1Spark Cluster部署 212
13.2Spark Cluster管理與監(jiān)控 213
13.2.1內存優(yōu)化機制 213
13.2.2Spark日志系統(tǒng) 213
13.3Spark 高可用性 215
13.4小結 216
第3篇其他大數據處理技術
14 專為流數據而生的Storm 218
14.1Storm起因 218
14.2Storm的架構與組件 220
14.3Storm的設計思想 222
14.4Storm與Spark的區(qū)別 224
14.5Storm的適用場景 225
14.6Storm的應用 226
14.7小結 227
15 Dremel和Drill 228
15.1Dremel和Drill的歷史背景 228
15.2Dremel的原理與應用 230
15.3Drill的架構與流程 232
15.4Dremel和Drill的適用場景與應用 234
15.5小結 234
第4篇大數據下的日志分析系統(tǒng)
16 日志分析解決方案 236
16.1百花齊放的日志處理技術 236
16.2日志處理方案ELK 238
16.2.1ELK的三大金剛 238
16.2.2ELK的架構 240
16.2.3ELK的組網形式 242
16.3Logstash日志收集解析 245
16.3.1Input Plugins及應用示例 246
16.3.2Filter Plugins及應用示例 248
16.3.3Output Plugins及應用示例 249
16.4ElasticSearch存儲與搜索 250
16.4.1ElasticSearch的主要概念 251
16.4.2ElasticSearch Rest API 252
16.5Kibana展示 253
16.6小結 255
17 ELK集群部署與應用 256
17.1ELK集群部署與優(yōu)化 256
17.1.1ELK HA集群部署 256
17.1.2ElasticSearch優(yōu)化 257
17.2如何開發(fā)自己的插件 259
17.3ELK在大數據運維系統(tǒng)中的應用 261
17.4ELK實戰(zhàn)應用 262
17.4.1ELK監(jiān)控Spark集群 262
17.4.2ELK監(jiān)控系統(tǒng)資源狀態(tài) 263
17.4.3ELK輔助日志管理和故障排查 263
17.5小結 264
第5篇數據分析技術前景展望
18 大數據處理的思考與展望 266
18.1大數據時代的思考 266
18.2大數據處理技術的發(fā)展趨勢 267
18.3小結 270