●第1章 VMware中安裝CentOS 71
1.1 下載CENTOS 7鏡像文件1
1.2 新建虛擬機5
1.3 安裝操作繫統9
第2章 CentOS 7集群環境配置16
2.1 繫統環境配置16
2.1.1 新建用戶17
2.1.2 修改用戶權限17
2.1.3 關閉防火牆17
2.1.4 設置固定IP18
2.1.5 修改主機名22
2.1.6 新建資源目錄23
2.2 安裝JDK23
2.3 克隆虛擬機25
2.4 配置主機IP映射29
第3章 Hadoop31
3.1 HADOOP簡介31
3.1.1 Hadoop生態繫統架構32
3.1.2 Hadoop 1.x與2.x的架構對比33
3.2 YARN基本架構及組件34
3.3 YARN工作流程37
3.4 配置集群各節點SSH無密鑰登錄38
3.4.1 無密鑰登錄原理38
3.4.2 無密鑰登錄操作步驟39
3.5 搭建HADOOP 2.X分布式集群41
第4章 HDFS48
4.1 HDFS簡介48
4.1.1 設計目標49
4.1.2 總體架構49
4.1.3 主要組件50
4.1.4 文件讀寫53
4.2 HDFS命令行操作54
4.3 HDFS WEB界面操作57
4.4 HDFS JAVA API操作59
4.4.1 讀取數據59
4.4.2 創建目錄61
4.4.3 創建文件62
4.4.4 刪除文件63
4.4.5 遍歷文件和目錄64
4.4.6 獲取文件或數據65
4.4.7 上傳本地文件66
4.4.8 下載文件到本地66
第5章 MapReduce68
5.1 MAPREDUCE簡介68
5.1.1 設計思想69
5.1.2 任務流程70
5.1.3 工作原理71
5.2 MAPREDUCE程序編寫步驟74
5.3 案例分析:單詞計數76
5.4 案例分析:數據去重82
5.5 案例分析:求平均分86
5.6 案例分析:二次排序89
5.7 使用MRUNIT測試MAPREDUCE程序97
第6章 ZooKeeper100
6.1 ZOOKEEPER簡介100
6.1.1 應用場景101
6.1.2 架構原理101
6.1.3 數據模型102
6.1.4 節點類型103
6.1.5 Watcher機制103
6.1.6 分布式鎖105
6.2 ZOOKEEPER安裝配置106
6.2.1 單機模式106
6.2.2 偽分布模式108
6.2.3 集群模式109
6.3 ZOOKEEPER命令行操作112
6.4 ZOOKEEPER JAVA API操作114
6.4.1 創建Java工程114
6.4.2 創建節點115
6.4.3 修改數據118
6.4.4 獲取數據118
6.4.5 刪除節點123
6.5 案例分析:監聽服務器動態上下線124
第7章 HDFS與YARN HA129
7.1 HDFS HA搭建129
7.1.1 架構原理130
7.1.2 搭建步驟131
7.1.3 結合ZooKeeper進行HDFS自動故障轉移137
7.2 YARN HA搭建142
7.2.1 架構原理142
7.2.2 搭建步驟142
第8章 HBase147
8.1 什麼是HBASE147
8.2 HBASE基本結構148
8.3 HBASE數據模型149
8.4 HBASE集群架構151
8.5 HBASE安裝配置153
8.5.1 單機模式153
8.5.2 偽分布模式155
8.5.3 集群模式156
8.6 HBASE SHELL命令操作160
8.7 HBASE JAVA API操作164
8.7.1 創建Java工程164
8.7.2 創建表164
8.7.3 添加數據166
8.7.4 查詢數據168
8.7.5 刪除數據169
8.8 HBASE過濾器170
8.9 案例分析:HBASE MAPREDUCE數據轉移174
8.9.1 HBase不同表間數據轉移174
8.9.2 HDFS數據轉移至HBase180
8.10 案例分析:HBASE數據備份與恢復183
第9章 Hive185
9.1 什麼是HIVE185
9.1.1 186
9.1.2 數據類型187
9.2 HIVE架構體繫189
9.3 HIVE三種運行模式190
9.4 HIVE安裝配置191
9.4.1 內嵌模式192
9.4.2 本地模式195
9.4.3 遠程模式198
9.5 HIVE常見屬性配置200
9.6 BEELINE CLI的使用201
9.7 HIVE數據庫操作205
9.8 HIVE表操作208
9.8.1 內部表209
9.8.2 外部表213
9.8.3 分區表215
9.8.4 分桶表219
9.9 HIVE查詢223
9.9.1 SELECT子句查詢224
9.9.2 JOIN連接查詢230
9.10 其他HIVE命令233
9.11 H數據表結構分析235
9.12 HIVE自定義函數237
9.13 HIVE JDBC操作239
9.14 案例分析:HIVE與HBASE整合242
9.15 案例分析:HIVE分析搜狗用戶搜索日志246
第10章 Sqoop251
10.1 什麼是SQOOP251
10.1.1 Sqoop基本架構252
10.1.2 Sqoop開發流程252
10.2 使用SQOOP253
10.3 數據導入工具254
10.4 數據導出工具259
10.5 SQOOP安裝與配置261
10.6 案例分析:將MYSQL表數據導入到HDFS中262
10.7 案例分析:將HDFS中的數據導出到MYSQL中263
10.8 案例分析:將MYSQL表數據導入到HBASE中264
第11章 Kafka267
11.1 什麼是KAFKA267
11.2 KAFKA架構268
11.3 主題與分區269
11.4 分區副本271
11.5 消費者組273
11.6 數據存儲機制274
11.7 集群環境搭建276
11.8 命令行操作278
11.8.1 創建主題278
11.8.2 查詢主題279
11.8.3 創建生產者280
11.8.4 創建消費者280
11.9 JAVA API操作281
11.9.1 創建Java工程281
11.9.2 創建生產者281
11.9.3 創建消費者283
11.9.4 運行程序285
11.10 案例分析:KAFKA生產者287
第12章 Flume294
12.1 什麼是FLUME294
12.2 架構原理295
12.2.1 單節點架構295
12.2.2 組件介紹296
12.2.3 多節點架構297
12.3 安裝與簡單使用299
12.4 案例分析:日志監控(一)302
12.5 案例分析:日志監控(二)304
12.6 306
12.6.1 內置307
12.6.2 自定義310
12.7 選擇器313
12.8 案例分析:和選擇器的應用315
12.9 案例分析:FLUME與KAFKA整合319
第13章 Storm322
13.1 什麼是STORM322
13.2 STORM TOPOLOGY323
13.3 STORM集群架構324
13.4 STORM流分組326
13.5 STORM集群環境搭建329
13.6 案例分析:單詞計數332
13.6.1 設計思路332
13.6.2 代碼編寫333
13.6.3 程序運行339
13.7 案例分析:STORM與KAFKA整合341
第14章 Elasticsearch347
14.1 什麼是ELASTICSEARCH347
14.2 基本概念348
14.2.1 索引、類型和文檔348
14.2.2 分片和副本348
14.2.3 路由349
14.3 集群架構350
14.4 集群環境搭建352
14.5 KIBANA安裝355
14.6 REST API357
14.6.1 集群狀態API357
14.6.2 索引API358
14.6.3 文檔API360
14.6.4 搜索API363
14.6.5 Query DSL365
14.7 HEAD插件安裝371
14.8 JAVA API操作:員工信息375
第15章 Scala379
15.1 什麼是SCALA379
15.2 安裝SCALA380
15.2.1 Windows中安裝Scala380
15.2.2 CentOS 7中安裝Scala381
15.3 SCALA基礎382
15.3.1 變量聲明382
15.3.2 數據類型383
15.3.3 表達式385
15.3.4 循環386
15.3.5 方法與函數388
15.4 集合391
15.4.1 數組391
15.4.2 List393
15.4.3 Map映射394
15.4.組396
15.4.5 Set396
15.5 類和對像398
15.5.1 類的定義398
15.5.2 單例對像399
15.5.3 伴生對像399
15.5.4 get和set方法400
15.5.5 構造器402
15.6 抽像類和特質404
15.6.1 抽像類404
15.6.2 特質406
15.7 使用ECLIPSE創建SCALA項目408
15.7.1 安裝Scala for Eclipse IDE408
15.7.2 創建Scala項目409
15.8 使用INTELLIJ IDEA創建SCALA項目410
15.8.1 IDEA中安裝Scala插件410
15.8.2 創建Scala項目414
第16章 Spark416
16.1 SPARK概述416
16.2 SPARK主要組件417
16.3 SPARK運行時架構419
16.3.1 Spark Standalone模式419
16.3.2 Spark On YARN模式421
16.4 SPARK集群環境搭建423
16.4.1 Spark Standalone模式423
16.4.2 Spark On YARN模式425
16.5 SPARK HA搭建426
16.6 SPARK應用程序的提交430
16.7 SPARK SHELL的使用433
16.8 SPARK RDD435
16.8.1 創建RDD435
16.8.2 RDD算子436
16.9 案例分析:使用SPARK RDD實現單詞計數441
16.10 SPARK SQL448
16.10.1 DataFrame和Dataset448
16.10.2 Spark SQL基本使用449
16.11 案例分析:使用SPARK SQL實現單詞計數452
16.12 案例分析:SPARK SQL與HIVE整合454
16.13 案例分析:SPARK SQL讀寫MYSQL457
本書以Hadoop及其周邊框架為主線,介紹了整個Hadoop生態繫統主流的大數據開發技術。全書共16章,第1章講解了VMware中CentOS 7操作繫統的安裝;第2章講解了大數據開發之前對操作繫統集群環境的配置;第3~16章講解了Hadoop生態繫統各框架HDFS、MapReduce、YARN、ZooKeeper、HBase、Hive、Sqoop和數據實時處理繫統Flume、Kafka、Storm、Spark以及分布式搜索繫統Elasticsearch等的基礎知識、架構原理、集群環境搭建,同時包括常用的Shell命令、API操作、源碼剖析,並通過實際案例加深對各個框架的理解與應用。通過閱讀本書,讀者即使沒有任何大數據基礎,也可以對照書中的步驟成功搭建屬於自己的大數據集群並獨立完成項目開發。
本書可作為Hadoop新手入門的指導書,也可作為大數據開發人員的隨身手冊以及大數據從等