大數據技術
內容描述
本書系統、全面地介紹大數據技術的基礎知識。全書共13章,首先介紹大數據行業與技術趨勢;然後介紹大數據生態圈的各項技術,包括分佈式文件系統、Hive分佈式數據倉庫、HBase技術原理、MapReduce和YARN技術原理、Spark基於內存的分佈式計算、Flink流批一體分佈式實時處理引擎、數據採集與數據裝載工具、Kafka分佈式消息訂閱系統、高可靠集群安全模式、分佈式全文檢索Elasticsearch、Redis內存數據庫等;最後介紹華為大數據解決方案。通過學習本書所講內容,讀者可以整體瞭解大數據技術,掌握大數據生態圈中各項技術最為基礎和關鍵的知識。
本書可作為數據科學與大數據、軟件工程、電腦科學與技術等專業的大數據概論課程的教材,也可供大數據工程技術人員學習或參考使用,還可作為華為HCIA認證考試的培訓教材。
目錄大綱
第 1章 大數據行業與技術趨勢 1
1.1 大數據時代 1
1.1.1 大數據的定義 1
1.1.2 大數據分析與傳統數據分析 2
1.1.3 大數據時代已經到來 7
1.2 大數據應用領域 8
1.3 大數據時代企業所面臨的挑戰和機遇 9
1.3.1 大數據時代企業所面臨的挑戰 9
1.3.2 大數據時代企業所面臨的機遇 10
1.4 大數據代表技術和解決方案 11
1.4.1 大數據代表技術 11
1.4.2 大數據解決方案 16
1.5 本章小結 17
1.6 習題 17
第 2章 分佈式文件系統 18
2.1 文件系統概述 18
2.2 HDFS架構 20
2.2.1 HDFS體系結構 21
2.2.2 HDFS中的數據流 23
2.3 HDFS關鍵特性 26
2.3.1 HDFS高可用性 26
2.3.2 HDFS元數據持久化 28
2.3.3 HDFS聯邦 28
2.3.4 HDFS視圖文件系統 29
2.3.5 HDFS機架感知策略 30
2.3.6 HDFS集中式緩存管理 31
2.3.7 配置HDFS數據存儲策略 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分佈式數據倉庫 44
3.1 數據倉庫 44
3.1.1 數據倉庫的定義 44
3.1.2 數據倉庫和數據庫的區別 44
3.1.3 數據倉庫的系統結構 45
3.2 Hive概述和體系結構 46
3.2.1 Hive概述 46
3.2.2 Hive的體系結構 46
3.2.3 Hive與傳統數據倉庫 48
3.2.4 Hive數據存儲模型 49
3.3 Hive基本操作 50
3.3.1 Hive數據基本操作 50
3.3.2 用戶自定義函數 57
3.3.3 Hive數據壓縮與文件存儲格式 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數據庫 64
4.2 HBase概述與基本架構 66
4.2.1 HBase概述 66
4.2.2 HBase數據模型 67
4.2.3 HBase架構 68
4.2.4 HBase關鍵流程 70
4.3 HBase基本操作 75
4.3.1 HBase性能優化 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參數配置 98
5.4 MapReduce和YARN增強特性 103
5.4.1 任務優先級調度 103
5.4.2 提交Application可設置超時參數 104
5.4.3 YARN的權限控制 104
5.4.4 支持CPU硬隔離 105
5.4.5 重啟性能優化 105
5.5 MapReduce實例 106
5.5.1 Top0視頻分析 106
5.5.2 視頻類別統計 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 核心數據結構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應用執行流程 116
6.3.2 Spark調度與任務分配 117
6.4 Spark生態圈其他技術 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章 數據採集與數據裝載工具 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 數據裝載工具Loader 168
8.4.1 Loader簡介 168
8.4.2 Loader模塊架構 169
8.4.3 Loader作業管理 170
8.4.4 監控作業執行狀態 172
8.5 本章小結 173
8.6 習題 173
第9章 Kafka分佈式消息訂閱系統 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關鍵流程及數據管理 181
9.3.1 Kafka生產過程分析 181
9.3.2 Broker保存消息 182
9.3.3 Kafka消費過程分析 183
9.3.4 Kafka高可用 184
9.3.5 舊數據處理方式 184
9.4 Kafka應用案例 185
消息隊列的應用場景 185
9.5 本章小結 189
9.6 習題 189
第 10章 高可靠集群安全模式 190
10.1 統一身份認證管理 190
10.1.1 統一身份認證 190
10.1.2 統一用戶管理系統 191
10.2 目錄服務和輕型目錄訪問協議 192
10.2.1 目錄服務 192
10.2.2 輕型目錄訪問協議 193
10.2.3 LdapServer 194
10.2.4 LdapServer集成設計 198
10.2.5 LdapServer應用優勢 198
10.3 單點登錄及Kerberos基本原理 199
10.3.1 單點登錄 199
10.3.2 KrbServer 201
10.3.3 KrbServer認證流程 202
10.4 華為大數據安全認證場景架構 204
10.4.1 安全認證場景架構 204
10.4.2 Kerberos與LdapServer的業務交互 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在大數據解決方案中的位置 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數據 219
11.3.7 單機多實例部署 219
11.3.8 分片自動跨節點分配策略 220
11.4 本章小結 221
11.5 習題 222
第 12章 Redis內存數據庫 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 集群環境讀/寫流程分析 226
12.3 Redis數據類型及操作命令 227
作者介紹
華為技術有限公司: 成立於1987年,總部位於廣東省深圳市龍崗區。
華為是全球領先的信息與通信技術(ICT)解決方案供應商,專注於ICT領域,在電信運營商、企業、終端和雲計算等領域構築了端到端的解決方案優勢,為運營商客戶、企業客戶和消費者提供有競爭力的ICT解決方案、產品和服務,並致力於實現未來信息社會、構建更美好的全聯接世界。
2013年,華為首超全球di一大電信設備商愛立信,排名《財富》世界500強第315位。華為的產品和解決方案已經應用於全球170多個國家,服務全球運營商50強中的45家及全球1/3的人口。