大數(shù)據(jù)技術(shù)及架構(gòu)圖解實戰(zhàn)派
定 價:146 元
- 作者:徐葳
- 出版時間:2022/7/1
- ISBN:9787121437748
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:500
- 紙張:
- 版次:01
- 開本:16開
本書提供了學(xué)習(xí)大數(shù)據(jù)技術(shù)及架構(gòu)的一站式解決方案,覆蓋了大數(shù)據(jù)生態(tài)圈中的完整技術(shù)體系,包括數(shù)據(jù)采集、數(shù)據(jù)存儲、分布式資源管理、數(shù)據(jù)計算、數(shù)據(jù)分析、任務(wù)調(diào)度、數(shù)據(jù)檢索、大數(shù)據(jù)底層基礎(chǔ)技術(shù)和大數(shù)據(jù)集群安裝與管理。本書還介紹了多個企業(yè)級大數(shù)據(jù)應(yīng)用案例(包括海量數(shù)據(jù)采集、“雙十一”數(shù)據(jù)大屏、海量數(shù)據(jù)全文搜索系統(tǒng)等)和大數(shù)據(jù)平臺架構(gòu)案例(包括離線數(shù)據(jù)倉庫架構(gòu)、實時數(shù)據(jù)倉庫架構(gòu)、批流一體化數(shù)據(jù)倉庫架構(gòu)、數(shù)據(jù)中臺架構(gòu)、直播大數(shù)據(jù)平臺架構(gòu)、電商大數(shù)據(jù)平臺架構(gòu)等),可以幫助讀者從全局角度理解大數(shù)據(jù)。在本書中,技術(shù)內(nèi)容基本上都是從零講起的,結(jié)合原理和架構(gòu),以“圖解+實戰(zhàn)”的形式幫助讀者輕松理解復(fù)雜的知識。
徐葳中科院大數(shù)據(jù)研究院大數(shù)據(jù)技術(shù)專家,曾就職于北京獵豹移動科技有限公司,出版了《Flink入門與實戰(zhàn)》
基 礎(chǔ) 篇
●第1章 大數(shù)據(jù)的前世今生 2
1.1 什么是大數(shù)據(jù) 2
1.2 大數(shù)據(jù)產(chǎn)生的背景 3
1.3 大數(shù)據(jù)的4V特征 3
1.4 大數(shù)據(jù)的典型應(yīng)用場景 4
1.5 大數(shù)據(jù)生態(tài)圈核心技術(shù)總覽 7
技 術(shù) 篇
●第2章 海量數(shù)據(jù)采集 9
2.1 為什么需要數(shù)據(jù)采集 9
2.2 數(shù)據(jù)形態(tài) 9
2.3 數(shù)據(jù)來源 11
2.4 數(shù)據(jù)采集規(guī)則 11
2.5 日志數(shù)據(jù)采集工具 13
2.5.1 對比常見的日志數(shù)據(jù)采集工具 13
2.5.2 Flume的原理及架構(gòu)分析 14
2.5.3 Flume的應(yīng)用 17
-安裝Flume 17
-Hello World 17
-【實戰(zhàn)】日志匯總采集 23
2.5.4 Logstash的原理及架構(gòu)分析 28
2.5.5 Logstash的應(yīng)用 30
-安裝Logstash 31
-【實戰(zhàn)】Hello World案例 31
-【實戰(zhàn)】采集異常日志案例 34
2.5.6 Filebeat的原理及架構(gòu)分析 38
- Filebeat的由來 38
-原理及架構(gòu)分析 39
2.5.7 Filebeat的應(yīng)用 42
- 安裝Filebeat 42
-【實戰(zhàn)】采集應(yīng)用程序日志 43
2.6 數(shù)據(jù)庫數(shù)據(jù)采集工具 46
2.6.1 對比常見的數(shù)據(jù)庫數(shù)據(jù)采集工具 46
-數(shù)據(jù)庫離線數(shù)據(jù)采集工具 46
-數(shù)據(jù)庫實時數(shù)據(jù)采集工具 47
2.6.2 Sqoop的原理及架構(gòu)分析 49
2.6.3 DataX的原理及架構(gòu)分析 53
2.6.4 Sqoop的應(yīng)用 55
-安裝Sqoop 55
-Sqoop常見參數(shù) 57
-【實戰(zhàn)】導(dǎo)入數(shù)據(jù) 59
-【實戰(zhàn)】導(dǎo)出數(shù)據(jù) 61
-【實戰(zhàn)】封裝Sqoop腳本 63
2.6.5 Canal的原理及架構(gòu)分析 64
2.6.6 Maxwell的原理及架構(gòu)分析 65
2.6.7 Maxwell的應(yīng)用 66
-安裝Maxwell 66
-【實戰(zhàn)】采集MySQL數(shù)據(jù)庫的實時數(shù)據(jù) 67
2.7 網(wǎng)頁數(shù)據(jù)采集工具 71
2.7.1 常見的網(wǎng)頁數(shù)據(jù)采集工具 71
2.7.2 網(wǎng)頁數(shù)據(jù)采集工具的原理及架構(gòu)分析 71
2.8 物聯(lián)網(wǎng)數(shù)據(jù)采集工具 73
2.8.1 什么是物聯(lián)網(wǎng)數(shù)據(jù)采集 73
2.8.2 如何實現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)采集 73
2.9 消息隊列中間件 73
2.9.1 為什么需要消息隊列中間件 73
2.9.2 對比常見的消息隊列中間件 75
2.9.3 Kafka原理及架構(gòu)分析 75
2.9.4 Kafka的應(yīng)用 77
-安裝Zookeeper集群 77
-安裝Kafka集群 79
-【實戰(zhàn)】生產(chǎn)者的使用 81
-【實戰(zhàn)】消費者的使用 82
2.9.5 Filebeat + Flume + Kafka的典型架構(gòu)分析 82
-數(shù)據(jù)采集聚合層 83
-數(shù)據(jù)分發(fā)層 83
-數(shù)據(jù)落盤層 84
● 第3章 海量數(shù)據(jù)存儲 85
3.1 海量數(shù)據(jù)存儲的演進之路 85
3.2 分布式文件存儲之HDFS 86
3.2.1 HDFS的前世今生 86
3.2.2 HDFS的原理及架構(gòu)分析 87
3.2.3 常見的分布式文件系統(tǒng) 90
3.2.4 安裝Hadoop集群 91
3.2.5 安裝Hadoop客戶端 102
3.2.6 HDFS的應(yīng)用 104
-HDFS常用命令的使用 105
-【實戰(zhàn)】統(tǒng)計HDFS中的文件 107
3.3 NoSQL數(shù)據(jù)庫之HBase 108
3.3.1 HBase的前世今生 108
3.3.2 HBase的原理及架構(gòu)分析 108
3.3.3 HBase的典型應(yīng)用場景 115
3.3.4 安裝HBase集群 116
3.3.5 HBase的應(yīng)用 120
-【實戰(zhàn)】使用Shell命令行操作HBase 121
-【實戰(zhàn)】使用Java API操作HBase 132
3.4 NoSQL數(shù)據(jù)庫之Redis 136
3.4.1 Redis的產(chǎn)生背景 136
3.4.2 Redis的發(fā)展歷程 137
3.4.3 Redis的原理及架構(gòu)分析 137
3.4.4 Redis的應(yīng)用 142
-安裝Redis 142
-【實戰(zhàn)】Redis常見命令的使用 144
-【實戰(zhàn)】存儲一個班的學(xué)員信息 154
-【實戰(zhàn)】使用Java代碼操作Redis 155
●第4章 離線數(shù)據(jù)計算 158
4.1 離線數(shù)據(jù)計算引擎的發(fā)展之路 158
4.2 離線計算引擎MapReduce 160
4.2.1 MapReduce的前世今生 160
4.2.2 MapReduce核心原理及架構(gòu)分析 161
4.2.3 【實戰(zhàn)】MapReduce離線數(shù)據(jù)計算——計算文件中每個單詞出現(xiàn)的總次數(shù) 170
4.3 離線計算引擎Spark 176
4.3.1 Spark可以取代Hadoop嗎 176
4.3.2 Spark核心原理及架構(gòu)分析 177
4.3.3 【實戰(zhàn)】Spark離線數(shù)據(jù)計算——計算文件中每個單詞出現(xiàn)的總次數(shù) 184
4.3.4 Spark中核心算子介紹及使用 189
●第5章 實時數(shù)據(jù)計算 207
5.1 從離線數(shù)據(jù)計算到實時數(shù)據(jù)計算 207
5.2 實時數(shù)據(jù)計算引擎的演進之路 208
5.3 實時數(shù)據(jù)計算引擎的技術(shù)選型 209
5.4 實時計算引擎Storm 211
5.4.1 Storm的原理及架構(gòu)分析 211
5.4.2 安裝Storm集群 216
5.4.3 【實戰(zhàn)】Storm實時數(shù)據(jù)計算 220
-實時清洗訂單數(shù)據(jù)(實時ETL) 220
-向Storm集群中提交任務(wù) 224
-停止Storm集群中正在運行的任務(wù) 226
5.5 實時計算引擎Spark Streaming 227
5.5.1 Spark Streaming的原理 227
5.5.2 對比Spark Streaming和Structured Streaming 229
5.5.3 【實戰(zhàn)】Spark Streaming實時數(shù)據(jù)計算 230
5.6 新一代實時計算引擎Flink 237
5.6.1 Flink的原理及架構(gòu)分析 237
5.6.2 Flink中核心算子的使用 244
5.6.3 【實戰(zhàn)】Flink實時數(shù)據(jù)計算 251
5.6.4 【實戰(zhàn)】利用Flink + DataV實現(xiàn)“雙十一”數(shù)據(jù)大屏 261
●第6章 OLAP數(shù)據(jù)分析 274
6.1 OLAP起源及現(xiàn)狀 274
6.2 OLAP引擎的分類 278
6.2.1 從數(shù)據(jù)建模方式分類 278
6.2.2 從數(shù)據(jù)處理時效分類 279
6.3 常見OLAP引擎的應(yīng)用場景 280
6.4 常見離線OLAP引擎 282
6.4.1 Hive的原理及架構(gòu)分析 282
6.4.2 Impala的原理及架構(gòu)分析 284
6.4.3 Kylin的原理及架構(gòu)分析 287
6.4.4 對比Hive、Impala和Kylin 290
6.5 常見實時OLAP引擎 290
6.5.1 Druid的原理及架構(gòu)分析 290
6.5.2 ClickHouse的原理及架構(gòu)分析 297
6.5.3 Doris的原理及架構(gòu)分析 299
6.5.4 對比Druid、ClickHouse和Doris 302
6.6 Hive快速上手 303
6.6.1 Hive部署 303
6.6.2 Hive核心功能使用 307
- Hive的使用方式 307
-【實戰(zhàn)】Hive中數(shù)據(jù)庫和表的操作 310
-【實戰(zhàn)】Hive中的數(shù)據(jù)類型 314
-【實戰(zhàn)】Hive中的表類型 318
-【實戰(zhàn)】Hive中的視圖 324
-【實戰(zhàn)】Hive中的高級函數(shù) 324
-【實戰(zhàn)】Hive中的排序語句 327
6.7 【實戰(zhàn)】Hive離線數(shù)據(jù)統(tǒng)計分析 329
6.7.1 需求及架構(gòu)分析 329
6.7.2 核心步驟實現(xiàn) 330
●第7章 海量數(shù)據(jù)全文檢索引擎 336
7.1 大數(shù)據(jù)時代全文檢索引擎的發(fā)展之路 336
7.1.1 全文檢索引擎的發(fā)展 337
7.1.2 全文檢索引擎技術(shù)選型 338
7.2 全文檢索引擎原理與架構(gòu)分析 340
7.2.1 Lucene的原理及架構(gòu)分析 340
7.2.2 Solr的原理及架構(gòu)分析 343
7.2.3 Elasticsearch的原理及架構(gòu)分析 345
7.3 Elasticsearch快速上手 351
7.3.1 Elasticsearch集群安裝部署 351
-安裝Elasticsearch集群 351
-安裝Elasticsearch集群的監(jiān)控管理工具 356
7.3.2 Elasticsearch核心功能的使用 359
-Elasticsearch的常見操作 359
-【實戰(zhàn)】Elasticsearch集成中文分詞器 371
-【實戰(zhàn)】Elasticsearch自定義詞庫 379
-【實戰(zhàn)】Elasticsearch查詢詳解 383
-【實戰(zhàn)】Elasticsearch SQL的使用 387
7.4 【實戰(zhàn)】基于Elasticsearch + HBase構(gòu)建全文搜索系統(tǒng) 390
7.4.1 全文搜索系統(tǒng)需求分析 390
7.4.2 系統(tǒng)架構(gòu)流程設(shè)計 391
7.4.3 開發(fā)全文搜索系統(tǒng) 394
●第8章 分布式任務(wù)調(diào)度系統(tǒng) 411
8.1 任務(wù)調(diào)度系統(tǒng)的作用 411
8.2 傳統(tǒng)任務(wù)調(diào)度系統(tǒng)Crontab的痛點 411
8.3 分布式任務(wù)調(diào)度系統(tǒng)原理與架構(gòu)分析 412
8.3.1 常見的分布式任務(wù)調(diào)度系統(tǒng) 413
8.3.2 Azkaban的原理及架構(gòu)分析 414
8.3.3 Ooize的原理及架構(gòu)分析 417
8.3.4 DolphinScheduler的原理及架構(gòu)分析 420
8.4 Azkaban快速上手 422
8.4.1 安裝Azkaban 422
8.4.2 【實戰(zhàn)】配置一個定時執(zhí)行的獨立任務(wù) 424
8.4.3 【實戰(zhàn)】配置一個帶有多級依賴的任務(wù) 432
8.5 【實戰(zhàn)】Azkaban在數(shù)據(jù)倉庫中的應(yīng)用 435
8.5.1 創(chuàng)建Job文件并進行壓縮 436
8.5.2 在Azkaban中創(chuàng)建項目并上傳gmv_calc.zip 441
8.5.3 給Azkaban中的任務(wù)設(shè)置定時執(zhí)行 441
●第9章 分布式資源管理 444
9.1 分布式資源管理 444
9.2 YARN的原理及架構(gòu)分析 445
9.3 YARN中的資源調(diào)度器 448
9.4 【實戰(zhàn)】配置和使用YARN多資源隊列 450
●第10章 大數(shù)據(jù)平臺搭建工具 456
10.1 如何快速搭建大數(shù)據(jù)平臺 456
10.2 了解常見的大數(shù)據(jù)平臺工具 457
10.2.1 大數(shù)據(jù)平臺工具HDP 457
10.2.2 大數(shù)據(jù)平臺工具CDH 458
10.2.3 大數(shù)據(jù)平臺工具CDP 460
架 構(gòu) 篇
●第11章 數(shù)據(jù)倉庫架構(gòu)演進之路 463
11.1 什么是數(shù)據(jù)倉庫 463
11.2 為什么需要數(shù)據(jù)倉庫 464
11.3 數(shù)據(jù)倉庫的基礎(chǔ)知識 465
11.3.1 事實表和維度表 465
11.3.2 數(shù)據(jù)庫三范式 466
11.3.3 數(shù)據(jù)倉庫建模方式 467
11.3.4 維度建模模型 468
11.4 數(shù)據(jù)倉庫分層 469
11.4.1 數(shù)據(jù)分層設(shè)計 470
11.4.2 數(shù)據(jù)倉庫命名規(guī)范 471
11.5 數(shù)據(jù)倉庫架構(gòu)設(shè)計 471
11.5.1 離線數(shù)據(jù)倉庫架構(gòu) 472
11.5.2 實時數(shù)據(jù)倉庫架構(gòu) 472
●第12章 數(shù)據(jù)中臺架構(gòu)演進之路 475
12.1 什么是中臺 475
12.2 什么是數(shù)據(jù)中臺 477
12.3 數(shù)據(jù)中臺演進過程 478
12.4 數(shù)據(jù)中臺架構(gòu) 479
12.4.1 采 480
12.4.2 存 480
12.4.3 通 481
12.4.4 用 481
●第13章 典型行業(yè)大數(shù)據(jù)架構(gòu)分析 482
13.1 直播大數(shù)據(jù)平臺架構(gòu)分析 482
13.2 電商大數(shù)據(jù)平臺架構(gòu)分析 483
13.3 金融大數(shù)據(jù)平臺架構(gòu)分析 484
13.4 交通大數(shù)據(jù)平臺架構(gòu)分析 485
13.5 游戲大數(shù)據(jù)平臺架構(gòu)分析 486