本書系統(tǒng)、全面地介紹大數(shù)據(jù)技術的基礎知識。全書共13章,首先介紹大數(shù)據(jù)行業(yè)與技術趨勢;然后介紹大數(shù)據(jù)生態(tài)圈的各項技術,包括分布式文件系統(tǒng)、Hive分布式數(shù)據(jù)倉庫、HBase技術原理、MapReduce和YARN技術原理、Spark基于內存的分布式計算、Flink流批一體分布式實時處理引擎、數(shù)據(jù)采集與數(shù)據(jù)裝載工具、Kafka分布式消息訂閱系統(tǒng)、高可靠集群安全模式、分布式全文檢索Elasticsearch、Redis內存數(shù)據(jù)庫等;最后介紹華為大數(shù)據(jù)解決方案。通過學習本書所講內容,讀者可以整體了解大數(shù)據(jù)技術,掌握大數(shù)據(jù)生態(tài)圈中各項技術最為基礎和關鍵的知識。
本書可作為數(shù)據(jù)科學與大數(shù)據(jù)、軟件工程、計算機科學與技術等專業(yè)的大數(shù)據(jù)概論課程的教材,也可供大數(shù)據(jù)工程技術人員學習或參考使用,還可作為華為HCIA認證考試的培訓教材。
(1)本書是華為認證教材之一。全書以華為ICT大數(shù)據(jù)技術培訓認證考試的考試大綱為主線,包括了大數(shù)據(jù)行業(yè)與技術趨勢、分布式文件系統(tǒng)、Hive分布式數(shù)據(jù)倉庫、HBase技術原理、MapReduce和YARN技術原理、Spark基于內存的分布式計算、Flink流批一體分布式實時處理引擎、數(shù)據(jù)采集與數(shù)據(jù)裝載工具、Kafka分布式消息訂閱系統(tǒng)、高可靠集群安全模式、分布式全文檢索ElasticSearch、Redis內存數(shù)據(jù)庫、華為大數(shù)據(jù)解決方案等內容。
(2)在涵蓋華為ICT大數(shù)據(jù)技術培訓認證相關內容的同時,本書在部分章節(jié)增加了實操案例,并強化了ZooKeeper、Kafka、Flink、Redis等的相關介紹,特別是在高可靠集群安全模式、華為大數(shù)據(jù)解決方案以及華為自身大數(shù)據(jù)組件介紹方面具有鮮明的特點。
華為技術有限公司:
成立于1987年,總部位于廣東省深圳市龍崗區(qū)。華為是全球領先的信息與通信技術(ICT)解決方案供應商,專注于ICT領域,在電信運營商、企業(yè)、終端和云計算等領域構筑了端到端的解決方案優(yōu)勢,為運營商客戶、企業(yè)客戶和消費者提供有競爭力的ICT解決方案、產品和服務,并致力于實現(xiàn)未來信息社會、構建更美好的全聯(lián)接世界。2013年,華為首超全球第一大電信設備商愛立信,排名《財富》世界500強第315位。華為的產品和解決方案已經應用于全球170多個國家,服務全球運營商50強中的45家及全球1/3的人口。
第 1章 大數(shù)據(jù)行業(yè)與技術趨勢 1
1.1 大數(shù)據(jù)時代 1
1.1.1 大數(shù)據(jù)的定義 1
1.1.2 大數(shù)據(jù)分析與傳統(tǒng)數(shù)據(jù)分析 2
1.1.3 大數(shù)據(jù)時代已經到來 7
1.2 大數(shù)據(jù)應用領域 8
1.3 大數(shù)據(jù)時代企業(yè)所面臨的挑戰(zhàn)和機遇 9
1.3.1 大數(shù)據(jù)時代企業(yè)所面臨的挑戰(zhàn) 9
1.3.2 大數(shù)據(jù)時代企業(yè)所面臨的機遇 10
1.4 大數(shù)據(jù)代表技術和解決方案 11
1.4.1 大數(shù)據(jù)代表技術 11
1.4.2 大數(shù)據(jù)解決方案 16
1.5 本章小結 17
1.6 習題 17
第 2章 分布式文件系統(tǒng) 18
2.1 文件系統(tǒng)概述 18
2.2 HDFS架構 20
2.2.1 HDFS體系結構 21
2.2.2 HDFS中的數(shù)據(jù)流 23
2.3 HDFS關鍵特性 26
2.3.1 HDFS高可用性 26
2.3.2 HDFS元數(shù)據(jù)持久化 28
2.3.3 HDFS聯(lián)邦 28
2.3.4 HDFS視圖文件系統(tǒng) 29
2.3.5 HDFS機架感知策略 30
2.3.6 HDFS集中式緩存管理 31
2.3.7 配置HDFS數(shù)據(jù)存儲策略 32
2.3.8 HDFS同分布 33
2.4 HDFS操作 34
2.4.1 使用命令行訪問HDFS 34
2.4.2 使用Java API訪問HDFS 36
2.5 ZooKeeper 40
2.5.1 ZooKeeper體系結構 40
2.5.2 ZooKeeper讀/寫機制 41
2.5.3 ZooKeeper關鍵特性 42
2.5.4 ZooKeeper命令行操作 42
2.6 本章小結 42
2.7 習題 43
第3章 Hive分布式數(shù)據(jù)倉庫 44
3.1 數(shù)據(jù)倉庫 44
3.1.1 數(shù)據(jù)倉庫的定義 44
3.1.2 數(shù)據(jù)倉庫和數(shù)據(jù)庫的區(qū)別 44
3.1.3 數(shù)據(jù)倉庫的系統(tǒng)結構 45
3.2 Hive概述和體系結構 46
3.2.1 Hive概述 46
3.2.2 Hive的體系結構 46
3.2.3 Hive與傳統(tǒng)數(shù)據(jù)倉庫 48
3.2.4 Hive數(shù)據(jù)存儲模型 49
3.3 Hive基本操作 50
3.3.1 Hive數(shù)據(jù)基本操作 50
3.3.2 用戶自定義函數(shù) 57
3.3.3 Hive數(shù)據(jù)壓縮與文件存儲格式 58
3.4 Hive增強特性 60
3.4.1 支持HDFS同分布 60
3.4.2 支持列加密功能 61
3.4.3 支持HBase刪除功能 61
3.4.4 指定行分隔符 61
3.4.5 其他增強特性 62
3.5 本章小結 62
3.6 習題 63
第4章 HBase技術原理 64
4.1 NoSQL數(shù)據(jù)庫 64
4.2 HBase概述與基本架構 66
4.2.1 HBase概述 66
4.2.2 HBase數(shù)據(jù)模型 67
4.2.3 HBase架構 68
4.2.4 HBase關鍵流程 70
4.3 HBase基本操作 75
4.3.1 HBase性能優(yōu)化 75
4.3.2 HBase常用操作 77
4.3.3 HBase Java API操作 79
4.4 HBase增強特性 82
4.4.1 支持二級索引 82
4.4.2 二級索引行鍵去除padding 83
4.4.3 支持多點分割 83
4.4.4 容災增強 83
4.4.5 HBase MOB 84
4.4.6 HFS 84
4.5 本章小結 85
4.6 習題 85
第5章 MapReduce和YARN技術原理 86
5.1 MapReduce和YARN基本介紹 86
5.1.1 MapReduce基本介紹 86
5.1.2 YARN基本介紹 87
5.2 MapReduce和YARN的功能與架構 87
5.2.1 MapReduce過程詳解 87
5.2.2 經典MapReduce任務調度模型 89
5.2.3 YARN的組件架構 90
5.2.4 MapReduce On YARN 91
5.2.5 YARN 容錯機制 92
5.3 YARN的資源隔離和調度 92
5.3.1 YARN資源隔離 92
5.3.2 YARN資源調度 94
5.3.3 搶占與延時調度 97
5.3.4 YARN參數(shù)配置 98
5.4 MapReduce和YARN增強特性 103
5.4.1 任務優(yōu)先級調度 103
5.4.2 提交Application可設置超時參數(shù) 104
5.4.3 YARN的權限控制 104
5.4.4 支持CPU硬隔離 105
5.4.5 重啟性能優(yōu)化 105
5.5 MapReduce實例 106
5.5.1 Top10視頻分析 106
5.5.2 視頻類別統(tǒng)計 108
5.6 本章小結 109
5.7 習題 109
第6章 Spark基于內存的分布式計算 110
6.1 Spark簡介 110
6.1.1 Spark概念 110
6.1.2 Spark架構 111
6.1.3 Spark核心組件 112
6.2 Spark編程模型 114
6.2.1 核心數(shù)據(jù)結構RDD 114
6.2.2 RDD上的操作 114
6.2.3 RDD的持久化 115
6.2.4 RDD計算工作流 115
6.3 Spark調度機制 116
6.3.1 Spark應用執(zhí)行流程 116
6.3.2 Spark調度與任務分配 117
6.4 Spark生態(tài)圈其他技術 120
6.4.1 Spark SQL 120
6.4.2 Spark Streaming 123
6.5 Spark應用案例 127
6.5.1 Spark Shell 127
6.5.2 WordCount 129
6.6 本章小結 130
6.7 習題 130
第7章 Flink流批一體分布式實時處理引擎 131
7.1 Flink概述 131
7.1.1 Flink的特點 131
7.1.2 Flink的應用場景 133
7.2 Flink原理和架構 133
7.2.1 Flink主要組件 133
7.2.2 Flink的插槽和并行度 134
7.3 Flink部署 136
7.3.1 Standalone部署 137
7.3.2 Flink on YARN部署 139
7.4 Flink時間處理 141
7.4.1 時間語義 141
7.4.2 窗口 142
7.4.3 Watermark 144
7.4.4 延遲處理 145
7.5 Flink的容錯機制 146
7.5.1 常用State 146
7.5.2 Checkpoint 148
7.5.3 State Backend 150
7.6 Flink應用案例 152
7.7 本章小結 153
7.8 習題 153
第8章 數(shù)據(jù)采集與數(shù)據(jù)裝載工具 154
8.1 Flume簡介及結構 154
8.1.1 Flume定義 154
8.1.2 Flume組成架構 155
8.1.3 Flume拓撲結構 158
8.2 Flume關鍵特性 160
8.2.1 Source 160
8.2.2 Sink 163
8.2.3 Channel、攔截器與處理器 165
8.3 Flume的安裝與配置 166
8.4 數(shù)據(jù)裝載工具Loader 168
8.4.1 Loader簡介 168
8.4.2 Loader模塊架構 169
8.4.3 Loader作業(yè)管理 170
8.4.4 監(jiān)控作業(yè)執(zhí)行狀態(tài) 172
8.5 本章小結 173
8.6 習題 173
第9章 Kafka分布式消息訂閱系統(tǒng) 175
9.1 Kafka簡介 175
9.1.1 Kafka概念 175
9.1.2 Kafka結構 175
9.1.3 Kafka消息傳遞模式 176
9.1.4 Kafka特點 176
9.2 Kafka組成 178
9.2.1 Kafka組成的概念 178
9.2.2 Kafka組成的功能 179
9.3 Kafka關鍵流程及數(shù)據(jù)管理 181
9.3.1 Kafka生產過程分析 181
9.3.2 Broker保存消息 182
9.3.3 Kafka消費過程分析 183
9.3.4 Kafka高可用 184
9.3.5 舊數(shù)據(jù)處理方式 184
9.4 Kafka應用案例 185
消息隊列的應用場景 185
9.5 本章小結 189
9.6 習題 189
第 10章 高可靠集群安全模式 190
10.1 統(tǒng)一身份認證管理 190
10.1.1 統(tǒng)一身份認證 190
10.1.2 統(tǒng)一用戶管理系統(tǒng) 191
10.2 目錄服務和輕型目錄訪問協(xié)議 192
10.2.1 目錄服務 192
10.2.2 輕型目錄訪問協(xié)議 193
10.2.3 LdapServer 194
10.2.4 LdapServer集成設計 198
10.2.5 LdapServer應用優(yōu)勢 198
10.3 單點登錄及Kerberos基本原理 199
10.3.1 單點登錄 199
10.3.2 KrbServer 201
10.3.3 KrbServer認證流程 202
10.4 華為大數(shù)據(jù)安全認證場景架構 204
10.4.1 安全認證場景架構 204
10.4.2 Kerberos與LdapServer的業(yè)務交互 205
10.4.3 常用配置項及命令 206
10.4.4 集群內服務認證 207
10.5 本章小結 207
10.6 習題 208
第 11章 分布式全文檢索Elasticsearch 209
11.1 Elasticsearch簡介 209
11.1.1 Elasticsearch特點 209
11.1.2 Elasticsearch應用場景 210
11.1.3 Elasticsearch在大數(shù)據(jù)解決方案中的位置 210
11.2 Elasticsearch架構 211
11.2.1 Elasticsearch核心概念 211
11.2.2 Elasticsearch集群架構 213
11.2.3 Elasticsearch內部架構 213
11.3 Elasticsearch關鍵特性 215
11.3.1 倒排序索引 215
11.3.2 路由算法 216
11.3.3 平衡算法 217
11.3.4 擴容策略 218
11.3.5 減容策略 218
11.3.6 索引HBase數(shù)據(jù) 219
11.3.7 單機多實例部署 219
11.3.8 分片自動跨節(jié)點分配策略 220
11.4 本章小結 221
11.5 習題 222
第 12章 Redis內存數(shù)據(jù)庫 223
12.1 Redis簡介 223
12.2 Redis架構 225
12.2.1 Redis架構概述 225
12.2.2 Redis架構設計 225
12.2.3 單線程架構 225
12.2.4 集群環(huán)境讀/寫流程分析 226
12.3 Redis數(shù)據(jù)類型及操作命令 227
12.3.1 字符串類型 228
12.3.2 列表類型 229
12.3.3 集合類型 231
12.3.4 散列表類型 232
12.3.5 有序集合類型 233
12.4 Redis的持久化 234
12.4.1 RDB持久化 234
12.4.2 AOF持久化 236
12.5 Redis優(yōu)化 238
12.6 本章小結 239
12.7 習題 239
第 13章 華為大數(shù)據(jù)解決方案 240
13.1 ICT行業(yè)發(fā)展趨勢概述 240
13.1.1 概述 240
13.1.2 華為云Stack解決方案 241
13.1.3 華為云Stack功能架構 242
13.1.4 數(shù)字平臺場景化解決方案 243
13.1.5 華為云大數(shù)據(jù)服務 244
13.2 華為大數(shù)據(jù)服務 245
13.2.1 MRS 245
13.2.2 數(shù)據(jù)倉庫服務 246
13.2.3 云搜索服務 248
13.2.4 圖引擎服務 248
13.3 華為智能數(shù)據(jù)湖運營平臺 249
13.3.1 華為云智能數(shù)據(jù)湖 249
13.3.2 智能數(shù)據(jù)湖運營平臺DAYU 250
13.3.3 數(shù)據(jù)湖治理 251
13.4 本章小結 252
13.5 習題 252