內容簡介
本書從大數據架構的角度全面解析大數據照設整技術及算法,探討大數據的發展和趨勢。不僅對大數據相關技術及算法做了系統性的埋體臭分析和描述,梳理了大數據的技術分類,如基礎架構支持、大數據採集、大數據存儲、大數據處理、大數據展示及互動,還融合了大數據行業的最新技術進晚槳再展和大型網際網路公司的大數據架構實踐,努力為讀者提供一個大數據的全景畫卷。
圖書目錄
第1章 大數據技術概述 1
1.1 大數據的概念 1
1.2 大數據的行業價值 4
1.3 大數據問題的爆發 9
1.4 大數據處理流程 12
1.5 大數據技術 13
1.5.1 基礎架構支持 14
1.5.2 數據採集 14
1.5.3 數據存儲 15
1.5.4 數據計算 16
1.5.5 展現與互動 18
1.6 練習題 19
參考文獻 19
第2章 大數據基礎支撐——數據中心及雲計算 20
2.1 數據中心概述 20
2.1.1 雲計算時代數據中心面臨的問題 21
2.1.2 新一代數據中心關鍵技術 22
2.1.3 業界發展動態 24
2.1.4 小結 25
2.2 雲計算簡介 25
2.2.1 雲計算定義 26
2.2.2 雲計算主要特徵 27
2.2.4 雲計算套用分類 29
2.2.5 小結 31
2.3 大數據與雲計算的關係 32
2.3.1 大數據是信息技術發展的必然階段 33
2.3.2 雲計算等新興信息技術正在贈翻才真正地落地和實施 34
2.3.3 雲計算等新興技術是解決大數據問題的核心關鍵 34
2.4 雲資源調度與管理 35
2.4.1 雲資源管理 36
2.4.2 雲資源調度策略 38
2.4.3 雲計算數據中心負載均衡調度 40
2.5 開源雲管理平台OpenStack 44
2.5.1 OpenStack的構成 45
2.5.2 OpenStack各組件之間的關係 46
2.5.3 OpenStack的邏輯架構 47
2.5.4 小結 49
2.6.1 起源與發展 50
2.6.2 OpenFlow標準和規乘甩范 50
2.6.3 OpenFlow的套用 53
2.7 虛擬機與容器 55
2.7.1 VM虛擬化與Container虛擬化 55
2.7.2 Docker 55
2.8 練習題 57
參考文獻 57
第3章 雲計算先行者——Google的三駕馬車 59
3.1 Google的三鍵良戀試駕馬車 59
3.1.2 MapReduce——一種並行計算的編程模型 64
3.1.3 BigTable——一個分散式數據存儲系統 69
3.2 Google新“三駕馬車” 77
3.2.1 Caffeine——基於Percolator的搜尋索引系統 77
3.2.2 Pregel——高效的分散式圖計算的計算框架 80
3.2.3 Dremel——大規模數據的互動式數據白宙斷頌分析系統 85
3.3 練習題 89
參考文獻 89
第4章 雲存儲系統 91
4.1 雲存儲的基本概念 91
4.1.1 雲存儲結構模型 91
4.1.2 雲存儲與傳統存儲系統的區別 94
4.2 雲存儲關鍵技術 95
4.2.1 存儲虛擬化技術 95
4.2.2 分散式存儲技術 97
4.3 雲存儲系統分類 98
4.3.1 分散式檔案存儲 99
4.3.2 分散式塊存儲 105
4.3.3 分散式對象存儲 109
4.3.4 統一存儲 117
4.4 其他相關技術 124
4.5 練習題 127
參考文獻 127
5.1 Flume 130
5.1.1 Flume架構 130
5.1.2 Flume核心組件 133
5.1.3 Flume環境搭建與部署 134
5.2 Scribe 139
5.2.1 Scribe架構 139
5.2.2 Scribe中的Store 140
5.2.3 Scribe環境搭建與部署 141
5.3 Chukwa 144
5.3.1 Chukwa的設計目標 144
5.3.2 Chukwa架構 145
5.3.3 Chukwa 環境搭建與部署 147
5.4 Kafka 150
5.4.1 Kafka架構 150
5.4.2 Kafka存儲 152
5.4.3 Kafka的特點 152
5.4.4 Kafka環境搭建與部署 154
5.5 練習題 155
參考文獻 155
第6章 Hadoop與MapReduce 156
6.1 Hadoop平台 156
6.1.1 Hadoop概述 156
6.1.2 Hadoop的發展簡史 157
6.1.3 Hadoop的功能和作用 158
6.1.4 HDFS 159
6.1.5 HBase 162
6.2 MapReduce 171
6.2.1 第一代MapReduce(MRv1) 172
6.2.2 MapReduce 2.0——Yarn 180
6.3 Hadoop相關生態系統 184
6.3.1 互動式數據查詢分析 184
6.3.2 數據收集、轉換工具 187
6.3.3 機器學習工具 188
6.3.4 集群管理與監控 188
6.3.5 其他工具 189
6.4 Hadoop套用案例 191
6.5 練習題 192
參考文獻 192
第7章 Spark——大數據統一計算平台 193
7.1 Spark簡介 193
7.1.1 Spark 193
7.1.2 BDAS 195
7.2 RDD 197
7.2.1 RDD基本概念 197
7.2.2 RDD示例 199
7.2.3 RDD與分散式共享記憶體 200
7.3 Spark SQL 201
7.4 MLlib 203
7.5 GraphX 206
7.6 Spark Streaming 206
7.6.1 基本概念 207
7.6.2 編程模型 208
7.7 Spark的安裝 210
7.7.1 單機運行Spark 210
7.7.2 使用Spark Shell與Spark互動 213
7.8 Shark、Impala、Hive對比 214
7.9 練習題 216
參考文獻 216
第8章 Storm流計算系統 218
8.1 流計算系統 218
8.1.1 流計算系統的特點 218
8.1.2 流計算處理基本流程 219
8.2 Storm流計算框架 220
8.2.1 Storm簡介 220
8.2.2 Storm關鍵術語 221
8.2.3 Storm架構設計 223
8.3 Storm編程實例 225
8.4 Storm套用 228
8.4.1 Storm套用場景 228
8.4.2 Storm套用實例 228
8.5 其他流計算框架 229
8.6 練習題 231
參考文獻 231
第9章 SQL、NoSQL與NewSQL 232
9.1 傳統SQL資料庫 232
9.1.1 關係模型 232
9.1.2 關係型資料庫的優點 233
9.2 NoSQL 234
9.2.1 NoSQL與大數據 235
9.2.2 NoSQL理論基礎 235
9.2.3 分散式模型 238
9.2.4 NoSQL資料庫分類 241
9.3 NewSQL 255
9.3.1 系統分類 255
9.3.2 Google Spanner 256
9.3.3 MemSQL 258
9.3.4 VoltDB 260
9.4 練習題 263
參考文獻 263
第10章 大數據與數據挖掘 264
10.1 數據挖掘的主要功能和常用算法 264
10.1.1 數據挖掘的主要功能 264
10.1.2 常用算法 265
10.2 大數據時代的數據挖掘 280
10.2.1 傳統數據挖掘解決方案 280
10.2.2 分散式數據挖掘解決方案 280
10.3 數據挖掘相關工具 282
10.3.1 Mahout 282
10.3.2 語言工具——Python 288
10.4 數據挖掘與R語言 289
10.4.1 R語言簡介 289
10.4.2 R語言在數據挖掘上的套用 290
10.5 練習題 294
參考文獻 294
第11章 深度學習 298
11.1 深度學習介紹 299
11.1.1 深度學習的概念 299
11.1.2 深度學習的結構 299
11.1.3 從機器學習到深度學習 301
11.2 深度學習基本方法 302
11.2.2 稀疏編碼 304
11.3 深度學習模型 305
11.3.1 深度置信網路 306
11.4 深度學習的訓練加速 310
11.4.1 GPU加速 310
11.4.2 數據並行 311
11.4.3 模型並行 312
11.4.4 計算集群 313
11.5 深度學習套用 313
11.5.1 Google 314
11.5.2 百度 314
11.5.3 騰訊Mariana 315
11.6 練習題 316
參考文獻 316
第12章 電子商務與社會化網路大數據分析 318
12.1 推薦系統簡介 318
12.1.1 推薦系統的評判標準 319
12.1.2 推薦系統的分類 319
12.1.3 線上推薦系統常用算法介紹 320
12.1.4 相關算法知識 323
12.2 計算廣告 327
12.2.1 計算廣告簡介 327
12.2.2 計算廣告發展階段 327
12.2.3 計算廣告相關算法 330
12.2.4 計算廣告與大數據 332
12.2.5 大數據在計算廣告中的套用案例 333
12.3 社交網路 333
12.3.1 社交網路中大數據挖掘的套用場景 334
12.3.2 社交網路大數據挖掘核心算法模型 334
12.3.3 圖計算框架 335
12.3.4 大數據在社交網路中的套用案例 337
12.4 練習題 338
第13章 大數據展示與互動技術 339
13.1 數據可視化分類 339
13.1.1 按照展示內容進行劃分 340
13.1.2 按照數據類型進行劃分 341
13.2 可視化技術分類 351
13.2.1 2D展示技術 351
13.2.2 3D渲染技術 356
13.2.3 體感互動技術 360
13.2.4 虛擬現實技術 362
13.2.5 增強現實技術 364
13.2.7 可植入設備 368
13.3 練習題 369
參考文獻 369
第14章 大數據安全與隱私 372
14.1 雲計算時代安全與隱私問題凸顯 372
14.2 雲計算與大數據時代的安全挑戰 374
14.2.1 大數據時代的安全需求 374
14.2.2 信息安全的發展歷程 375
14.2.3 新興信息技術帶來的安全挑戰 376
14.3 如何解決安全問題 380
14.3.1 雲計算安全防護框架 381
14.3.2 基礎雲安全防護關鍵技術 384
14.3.3 創立本質安全的新型IT體系 387
14.4 隱私問題 389
14.4.1 防不勝防的隱私泄露 389
14.4.2 隱私保護的政策法規 390
14.4.3 隱私保護技術 391
14.5 練習題 393
參考文獻 393
第15章 大數據技術發展趨勢 394
15.1 實時化 394
15.2 記憶體計算 396
15.2.1 機遇與挑戰 396
15.2.2 研究進展 397
15.2.3 發展展望 399
15.3 泛在化 399
15.3.1 發展現狀 400
15.3.2 發展趨勢 401
15.4 智慧型化 406
15.4.1 傳統人工智慧 406
15.4.2 基於大數據的人工智慧 407
15.5 練習題 410
參考文獻 410
第16章 知名企業大數據架構簡介 411
16.1 騰訊 411
16.1.1 背景介紹 411
16.1.2 整體架構 412
16.2 淘寶 416
16.2.1 背景介紹 416
16.2.2 整體架構 416
16.3 Facebook 417
16.3.1 背景介紹 417
16.3.2 整體架構 418
16.3.3 技術架構展望 420
16.4 Twitter 420
16.4.1 背景介紹 420
16.4.2 整體架構 420
16.4.3 技術架構展望 422
16.5 Netflix 422
16.5.1 背景介紹 422
16.5.2 整體架構 423
16.5.3 Netflix個性化和推薦系統架構 426
16.6 練習題 430
參考文獻 430
2.7.1 VM虛擬化與Container虛擬化 55
2.7.2 Docker 55
2.8 練習題 57
參考文獻 57
第3章 雲計算先行者——Google的三駕馬車 59
3.1 Google的三駕馬車 59
3.1.2 MapReduce——一種並行計算的編程模型 64
3.1.3 BigTable——一個分散式數據存儲系統 69
3.2 Google新“三駕馬車” 77
3.2.1 Caffeine——基於Percolator的搜尋索引系統 77
3.2.2 Pregel——高效的分散式圖計算的計算框架 80
3.2.3 Dremel——大規模數據的互動式數據分析系統 85
3.3 練習題 89
參考文獻 89
第4章 雲存儲系統 91
4.1 雲存儲的基本概念 91
4.1.1 雲存儲結構模型 91
4.1.2 雲存儲與傳統存儲系統的區別 94
4.2 雲存儲關鍵技術 95
4.2.1 存儲虛擬化技術 95
4.2.2 分散式存儲技術 97
4.3 雲存儲系統分類 98
4.3.1 分散式檔案存儲 99
4.3.2 分散式塊存儲 105
4.3.3 分散式對象存儲 109
4.3.4 統一存儲 117
4.4 其他相關技術 124
4.5 練習題 127
參考文獻 127
5.1 Flume 130
5.1.1 Flume架構 130
5.1.2 Flume核心組件 133
5.1.3 Flume環境搭建與部署 134
5.2 Scribe 139
5.2.1 Scribe架構 139
5.2.2 Scribe中的Store 140
5.2.3 Scribe環境搭建與部署 141
5.3 Chukwa 144
5.3.1 Chukwa的設計目標 144
5.3.2 Chukwa架構 145
5.3.3 Chukwa 環境搭建與部署 147
5.4 Kafka 150
5.4.1 Kafka架構 150
5.4.2 Kafka存儲 152
5.4.3 Kafka的特點 152
5.4.4 Kafka環境搭建與部署 154
5.5 練習題 155
參考文獻 155
第6章 Hadoop與MapReduce 156
6.1 Hadoop平台 156
6.1.1 Hadoop概述 156
6.1.2 Hadoop的發展簡史 157
6.1.3 Hadoop的功能和作用 158
6.1.4 HDFS 159
6.1.5 HBase 162
6.2 MapReduce 171
6.2.1 第一代MapReduce(MRv1) 172
6.2.2 MapReduce 2.0——Yarn 180
6.3 Hadoop相關生態系統 184
6.3.1 互動式數據查詢分析 184
6.3.2 數據收集、轉換工具 187
6.3.3 機器學習工具 188
6.3.4 集群管理與監控 188
6.3.5 其他工具 189
6.4 Hadoop套用案例 191
6.5 練習題 192
參考文獻 192
第7章 Spark——大數據統一計算平台 193
7.1 Spark簡介 193
7.1.1 Spark 193
7.1.2 BDAS 195
7.2 RDD 197
7.2.1 RDD基本概念 197
7.2.2 RDD示例 199
7.2.3 RDD與分散式共享記憶體 200
7.3 Spark SQL 201
7.4 MLlib 203
7.5 GraphX 206
7.6 Spark Streaming 206
7.6.1 基本概念 207
7.6.2 編程模型 208
7.7 Spark的安裝 210
7.7.1 單機運行Spark 210
7.7.2 使用Spark Shell與Spark互動 213
7.8 Shark、Impala、Hive對比 214
7.9 練習題 216
參考文獻 216
第8章 Storm流計算系統 218
8.1 流計算系統 218
8.1.1 流計算系統的特點 218
8.1.2 流計算處理基本流程 219
11.1.2 深度學習的結構 299
11.1.3 從機器學習到深度學習 301
11.2 深度學習基本方法 302
11.2.2 稀疏編碼 304
11.3 深度學習模型 305
11.3.1 深度置信網路 306
11.4 深度學習的訓練加速 310
11.4.1 GPU加速 310
11.4.2 數據並行 311
11.4.3 模型並行 312
11.4.4 計算集群 313
11.5 深度學習套用 313
11.5.1 Google 314
11.5.2 百度 314
11.5.3 騰訊Mariana 315
11.6 練習題 316
參考文獻 316
第12章 電子商務與社會化網路大數據分析 318
12.1 推薦系統簡介 318
12.1.1 推薦系統的評判標準 319
12.1.2 推薦系統的分類 319
12.1.3 線上推薦系統常用算法介紹 320
12.1.4 相關算法知識 323
12.2 計算廣告 327
12.2.1 計算廣告簡介 327
12.2.2 計算廣告發展階段 327
12.2.3 計算廣告相關算法 330
12.2.4 計算廣告與大數據 332
12.2.5 大數據在計算廣告中的套用案例 333
12.3 社交網路 333
12.3.1 社交網路中大數據挖掘的套用場景 334
12.3.2 社交網路大數據挖掘核心算法模型 334
12.3.3 圖計算框架 335
12.3.4 大數據在社交網路中的套用案例 337
12.4 練習題 338
第13章 大數據展示與互動技術 339
13.1 數據可視化分類 339
13.1.1 按照展示內容進行劃分 340
13.1.2 按照數據類型進行劃分 341
13.2 可視化技術分類 351
13.2.1 2D展示技術 351
13.2.2 3D渲染技術 356
16.4.1 背景介紹 420
16.4.2 整體架構 420
16.4.3 技術架構展望 422
16.5 Netflix 422
16.5.1 背景介紹 422
16.5.2 整體架構 423
16.5.3 Netflix個性化和推薦系統架構 426
16.6 練習題 430
參考文獻 430