大數據技術及架構圖解實戰派

大數據技術及架構圖解實戰派

《大數據技術及架構圖解實戰派》是2022年7月電子工業出版社出版的圖書,作者是徐葳。

本書適合對大數據感興趣的開發人員。

基本介紹

  • 書名:大數據技術及架構圖解實戰派
  • 作者:徐葳
  • 出版社:電子工業出版社
  • 出版時間:2022年7月
  • 頁數:500 頁
  • 定價:146 元
  • 開本:16 開
  • ISBN:9787121437748
內容簡介,圖書目錄,作者簡介,

內容簡介

《大數據技術及架構圖解實戰派》提供了學習大數據技術及架構的一站式解決方案,覆蓋了大數據生態圈中的完整技術體系,包括數據採集、數據存儲、分散式資源管理、數據計算、數據分析、任務白永和調度、數據檢索、大數據底層基礎技術和大數據集群安裝與管理。

圖書目錄

基 礎 篇
第1章 大數據的前世今生 2
1.1 什麼是大數據 2
1.2 大數據產生的背景 3
1.3 大數據的4V特徵 3
1.4 大數據的典型套用場景 4
1.5 大數據生態圈核心技術總覽 7
技 術 篇
第2章 數據採集 9
2.1 為什頌提龍么需要數據採集 9
2.2 數據形態 9
2.3 數據來源 11
2.4 數據採集規則 11
2.5 日誌數據採集工具 13
2.5.1 對比常見的日誌數據採集工戒碑促具 13
2.5.2 Flume的原理及架構分析 14
2.5.3 Flume的套用17
- 安裝Flume 17
- Hello World 17
-【實戰】日誌匯總採集 23
2.5.4 Logstash的原理及架構分析28
2.5.5 Logstash的套用 30
- 安裝Logstash 31
-【實戰】Hello World案例 31
-【實戰】採集異常日誌案例 34
2.5.6 Filebeat的原理及架端潤構分析 38
- Filebeat的由來 38
- 原理及架構分析 39
2.5.7 Filebeat的套用 42
- 安裝Filebeat 42
-【實戰】採集應用程式日誌 43
2.6 資料庫數據採集工具 46
2.6.1 對比常見的資料庫數據採集工具 46
- 資料庫離線數據採集工具 46
- 資料庫實時數據採集工具 47
2.6.2 Sqoop的原理及架構分析 49
2.6.3 DataX的原理及架構分析 53
2.6.4 Sqoop的套用55
- 安裝Sqoop 55
- Sqoop常見參數 57
- 【實戰】導入數據59
- 【實戰】導出數據61
- 【實戰】封裝Sqoop腳本 63
2.6.5 Canal的原理及架構分析 64
2.6.6 Maxwell的原理及架構分析65
2.6.7 Maxwell的套用 66
- 安裝Maxwell 66
- 【實戰】採集MySQL資料庫的實時數據 67
2.7 網頁數據採集工具 71
2.7.1 常見的網頁數據採集工具 71
2.7.2 網頁數據採集工具的原理及架構分析 71
2.8 物聯網數據採集講犁婆工具 73
2.8.1 什麼是物聯網數據採集 73
2.8.2 如何實現物聯網數據採集 73
2.9 訊息佇列中間件 73
2.9.1 為什麼需要訊息佇列中間件 73
2.9.2 對比常見的訊息佇列中間件 75
2.9.3 Kafka原理及架構分析 75
2.9.4 Kafka的套用 77
- 安裝Zookeeper集群 77
- 安裝Kafka集群 79
- 【實戰】生產者的使用81
- 【實戰】消費者的使用82
2.9.5 Filebeat + Flume + Kafka的典型架構分析戀膠漿詢 82
- 數據採集聚合層 83
- 數據分發層 83
- 數據落盤層 84
第3章 數據存儲 85
3.1 數據存儲的演進之路 85
3.2 分散式檔案存儲之HDFS86
3.2.1 HDFS的前世今生 86
3.2.2 HDFS的原理及架構分析 87
3.2.3 常見的分散式檔案系統 90
3.2.4 安仔艱試戀裝Hadoop集群91
3.2.5 安裝Hadoop客戶端 102
3.2.6 HDFS的套用 104
- HDFS常用命令的使用 105
- 【實戰】統計HDFS中的檔案 107
3.3 NoSQL資料庫之HBase 108
3.3.1 HBase的前世今生108
3.3.2 HBase的原理及架構分析 108
- 原理分析109
- 架構分析112
3.3.3 HBase的典型套用場景115
3.3.4 安裝HBase集群 116
3.3.5 HBase的套用120
- 【實戰】使用Shell命令行操作HBase 121
- 【實戰】使用Java API操作HBase 132
3.4 NoSQL資料庫之Redis 136
3.4.1 Redis的產生背景 136
3.4.2 Redis的發展歷程 137
3.4.3 Redis的原理及架構分析 137
3.4.4 Redis的套用 142
- 安裝Redis 142
- 【實戰】Redis常見命令的使用 144
- 【實戰】存儲一個班的學員信息154
- 【實戰】使用Java代碼操作Redis 155
第4章 離線數據計算 158
4.1 離線數據計算引擎的發展之路 158
4.2 離線計算引擎MapReduce 160
4.2.1 MapReduce的前世今生 160
4.2.2 MapReduce核心原理及架構分析 161
4.2.3 【實戰】MapReduce離線數據計算——計算檔案中每個單詞出現的
總次數 170
- 添加Hadoop相關的依賴 171
- 開發Map階段的代碼 171
- 開發Reduce階段的代碼 172
- 組裝MapReduce任務 172
- 對MapReduce任務打Jar包174
- 向集群提交MapReduce任務 175
4.3 離線計算引擎Spark176
4.3.1 Spark可以取代Hadoop嗎 176
4.3.2 Spark核心原理及架構分析 177
4.3.3 【實戰】Spark離線數據計算——計算檔案中每個單詞出現的總次數 184
- 離線數據計算184
- 安裝Spark客戶端提交任務 187
4.3.4 Spark中核心運算元介紹及使用 189
- Transformation運算元 191
- Action運算元 201
第5章 實時數據計算 207
5.1 從離線數據計算到實時數據計算 207
5.2 實時數據計算引擎的演進之路 208
5.3 實時數據計算引擎的技術選型 209
5.4 實時計算引擎Storm 211
5.4.1 Storm的原理及架構分析 211
- 原理分析211
- 架構分析214
5.4.2 安裝Storm集群 216
5.4.3 【實戰】Storm實時數據計算 220
- 實時清洗訂單數據(實時ETL) 220
- 向Storm集群中提交任務 224
- 停止Storm集群中正在運行的任務 226
5.5 實時計算引擎Spark Streaming 227
5.5.1 Spark Streaming的原理227
5.5.2 對比Spark Streaming和Structured Streaming 229
5.5.3 【實戰】Spark Streaming實時數據計算 230
- 實時單詞計數230
- 讀寫Kafka 233
5.6 新一代實時計算引擎Flink 237
5.6.1 Flink的原理及架構分析 237
5.6.2 Flink中核心運算元的使用 244
5.6.3 【實戰】Flink實時數據計算 251
- 基於Window視窗進行聚合統計252
- 安裝Flink客戶端提交任務 255
5.6.4 【實戰】利用Flink + DataV實現“雙十一”數據大屏 261
- “雙十一”數據大屏整體架構介紹 262
- “雙十一”數據大屏核心代碼開發 263
第6章 OLAP數據分析 274
6.1 OLAP起源及現狀 274
6.2 OLAP引擎的分類 278
6.2.1 從數據建模方式分類 278
6.2.2 從數據處理時效分類 279
6.3 常見OLAP引擎的套用場景 280
6.4 常見離線OLAP引擎 282
6.4.1 Hive的原理及架構分析 282
6.4.2 Impala的原理及架構分析 284
6.4.3 Kylin的原理及架構分析 287
6.4.4 對比Hive、Impala和Kylin 290
6.5 常見實時OLAP引擎 290
6.5.1 Druid的原理及架構分析 290
6.5.2 ClickHouse的原理及架構分析 297
6.5.3 Doris的原理及架構分析 299
6.5.4 對比Druid、ClickHouse和Doris 302
6.6 Hive快速上手 303
6.6.1 Hive部署 303
6.6.2 Hive核心功能使用 307
- Hive的使用方式 307
- 【實戰】Hive中資料庫和表的操作 310
- 【實戰】Hive中的數據類型 314
- 【實戰】Hive中的表類型 318
- 【實戰】Hive中的視圖 324
- 【實戰】Hive中的高級函式 324
- 【實戰】Hive中的排序語句 327
6.7 【實戰】Hive離線數據統計分析 329
6.7.1 需求及架構分析 329
6.7.2 核心步驟實現 330
- 開發Agent配置檔案 331
- 啟動Agent,驗證結果 332
- 在Hive中創建外部分區表 332
- 向表中關聯分區數據 333
- 對關聯分區的操作封裝腳本333
- 創建視圖334
第7章 數 據全文檢索引擎 336
7.1 大數據時代全文檢索引擎的發展之路 336
7.1.1 全文檢索引擎的發展 337
7.1.2 全文檢索引擎技術選型 338
7.2 全文檢索引擎原理與架構分析 340
7.2.1 Lucene的原理及架構分析 340
- 原理分析340
- 架構分析340
7.2.2 Solr的原理及架構分析 343
- 原理分析343
- 架構分析344
7.2.3 Elasticsearch的原理及架構分析 345
- 核心原理及概念 345
- 分詞原理348
- 架構分析350
7.3 Elasticsearch快速上手 351
7.3.1 Elasticsearch集群安裝部署 351
- 安裝Elasticsearch集群 351
- 安裝Elasticsearch集群的監控管理工具 356
7.3.2 Elasticsearch核心功能的使用 359
- Elasticsearch的常見操作 359
- 【實戰】Elasticsearch集成中文分詞器 371
- 【實戰】Elasticsearch自定義詞庫 379
- 【實戰】Elasticsearch查詢詳解 383
- 【實戰】Elasticsearch SQL的使用 387
7.4 【實戰】基於Elasticsearch + HBase構建全文搜尋系統 390
7.4.1 全文搜尋系統需求分析 390
7.4.2 系統架構流程設計 391
- 整體架構流程設計391
- Elasticsearch和HBase數據同步的3種設計方案 392
- 底層執行流程393
7.4.3 開發全文搜尋系統 394
- 開發流程分析394
- 核心代碼實現395
- 運行項目406
第8章 分散式任務調度系統 411
8.1 任務調度系統的作用 411
8.2 傳統任務調度系統Crontab的痛點 411
8.3 分散式任務調度系統原理與架構分析 412
8.3.1 常見的分散式任務調度系統 413
8.3.2 Azkaban的原理及架構分析414
8.3.3 Ooize的原理及架構分析 417
8.3.4 DolphinScheduler的原理及架構分析 420
8.4 Azkaban快速上手 422
8.4.1 安裝Azkaban422
8.4.2 【實戰】配置一個定時執行的獨立任務 424
8.4.3 【實戰】配置一個帶有多級依賴的任務 432
8.5 【實戰】Azkaban在數據倉庫中的套用 435
8.5.1 創建Job檔案並進行壓縮 436
8.5.2 在Azkaban中創建項目並上傳gmv_calc.zip 441
8.5.3 給Azkaban中的任務設定定時執行 441
第9章 分散式資源管理 444
9.1 分散式資源管理 444
9.2 YARN的原理及架構分析445
9.3 YARN中的資源調度器 448
9.4 【實戰】配置和使用YARN多資源佇列 450
第10章 大數據平台搭建工具 456
10.1 如何快速搭建大數據平台 456
10.2 了解常見的大數據平台工具457
10.2.1 大數據平台工具HDP 457
10.2.2 大數據平台工具CDH 458
10.2.3 大數據平台工具CDP 460
架 構 篇
第11章 數據倉庫架構演進之路 463
11.1 什麼是數據倉庫 463
11.2 為什麼需要數據倉庫 464
11.3 數據倉庫的基礎知識 465
11.3.1 事實表和維度表 465
11.3.2 資料庫三範式 466
11.3.3 數據倉庫建模方式 467
11.3.4 維度建模模型 468
11.4 數據倉庫分層469
11.4.1 數據分層設計 470
11.4.2 數據倉庫命名規範 471
11.5 數據倉庫架構設計471
11.5.1 離線數據倉庫架構 472
11.5.2 實時數據倉庫架構 472
第12章 數據中台架構演進之路 475
12.1 什麼是中台 475
12.2 什麼是數據中台 477
12.3 數據中台演進過程478
12.4 數據中台架構479
12.4.1 采 480
12.4.2 存 480
12.4.3 通 481
12.4.4 用 481
第13章 典型行業大數據架構分析 482
13.1 直播大數據平台架構分析 482
13.2 電商大數據平台架構分析 483
13.3 金融大數據平台架構分析 484
13.4 交通大數據平台架構分析 485
13.5 遊戲大數據平台架構分析 486

作者簡介

徐葳,專注於大數據技術方向,屬於國內較早一批從事大數據的開發者,擁有10年以上網際網路公司軟體研發經驗。
曾任職於北京獵豹移動、中科院大數據技術研究院等企業。
曾為移動研究院、平安壽險、中信銀行、花旗銀行、中移線上等企業進行大數據技術企培。
2.6.4 Sqoop的套用55
- 安裝Sqoop 55
- Sqoop常見參數 57
- 【實戰】導入數據59
- 【實戰】導出數據61
- 【實戰】封裝Sqoop腳本 63
2.6.5 Canal的原理及架構分析 64
2.6.6 Maxwell的原理及架構分析65
2.6.7 Maxwell的套用 66
- 安裝Maxwell 66
- 【實戰】採集MySQL資料庫的實時數據 67
2.7 網頁數據採集工具 71
2.7.1 常見的網頁數據採集工具 71
2.7.2 網頁數據採集工具的原理及架構分析 71
2.8 物聯網數據採集工具 73
2.8.1 什麼是物聯網數據採集 73
2.8.2 如何實現物聯網數據採集 73
2.9 訊息佇列中間件 73
2.9.1 為什麼需要訊息佇列中間件 73
2.9.2 對比常見的訊息佇列中間件 75
2.9.3 Kafka原理及架構分析 75
2.9.4 Kafka的套用 77
- 安裝Zookeeper集群 77
- 安裝Kafka集群 79
- 【實戰】生產者的使用81
- 【實戰】消費者的使用82
2.9.5 Filebeat + Flume + Kafka的典型架構分析 82
- 數據採集聚合層 83
- 數據分發層 83
- 數據落盤層 84
第3章 數據存儲 85
3.1 數據存儲的演進之路 85
3.2 分散式檔案存儲之HDFS86
3.2.1 HDFS的前世今生 86
3.2.2 HDFS的原理及架構分析 87
3.2.3 常見的分散式檔案系統 90
3.2.4 安裝Hadoop集群91
3.2.5 安裝Hadoop客戶端 102
3.2.6 HDFS的套用 104
- HDFS常用命令的使用 105
- 【實戰】統計HDFS中的檔案 107
3.3 NoSQL資料庫之HBase 108
3.3.1 HBase的前世今生108
3.3.2 HBase的原理及架構分析 108
- 原理分析109
- 架構分析112
3.3.3 HBase的典型套用場景115
3.3.4 安裝HBase集群 116
3.3.5 HBase的套用120
- 【實戰】使用Shell命令行操作HBase 121
- 【實戰】使用Java API操作HBase 132
3.4 NoSQL資料庫之Redis 136
3.4.1 Redis的產生背景 136
3.4.2 Redis的發展歷程 137
3.4.3 Redis的原理及架構分析 137
3.4.4 Redis的套用 142
- 安裝Redis 142
- 【實戰】Redis常見命令的使用 144
- 【實戰】存儲一個班的學員信息154
- 【實戰】使用Java代碼操作Redis 155
第4章 離線數據計算 158
4.1 離線數據計算引擎的發展之路 158
4.2 離線計算引擎MapReduce 160
4.2.1 MapReduce的前世今生 160
4.2.2 MapReduce核心原理及架構分析 161
4.2.3 【實戰】MapReduce離線數據計算——計算檔案中每個單詞出現的
總次數 170
- 添加Hadoop相關的依賴 171
- 開發Map階段的代碼 171
- 開發Reduce階段的代碼 172
- 組裝MapReduce任務 172
- 對MapReduce任務打Jar包174
- 向集群提交MapReduce任務 175
4.3 離線計算引擎Spark176
4.3.1 Spark可以取代Hadoop嗎 176
4.3.2 Spark核心原理及架構分析 177
4.3.3 【實戰】Spark離線數據計算——計算檔案中每個單詞出現的總次數 184
- 離線數據計算184
- 安裝Spark客戶端提交任務 187
4.3.4 Spark中核心運算元介紹及使用 189
- Transformation運算元 191
- Action運算元 201
第5章 實時數據計算 207
5.1 從離線數據計算到實時數據計算 207
5.2 實時數據計算引擎的演進之路 208
5.3 實時數據計算引擎的技術選型 209
5.4 實時計算引擎Storm 211
5.4.1 Storm的原理及架構分析 211
- 原理分析211
- 架構分析214
5.4.2 安裝Storm集群 216
5.4.3 【實戰】Storm實時數據計算 220
- 實時清洗訂單數據(實時ETL) 220
- 向Storm集群中提交任務 224
- 停止Storm集群中正在運行的任務 226
5.5 實時計算引擎Spark Streaming 227
5.5.1 Spark Streaming的原理227
5.5.2 對比Spark Streaming和Structured Streaming 229
5.5.3 【實戰】Spark Streaming實時數據計算 230
- 實時單詞計數230
- 讀寫Kafka 233
5.6 新一代實時計算引擎Flink 237
5.6.1 Flink的原理及架構分析 237
5.6.2 Flink中核心運算元的使用 244
5.6.3 【實戰】Flink實時數據計算 251
- 基於Window視窗進行聚合統計252
- 安裝Flink客戶端提交任務 255
5.6.4 【實戰】利用Flink + DataV實現“雙十一”數據大屏 261
- “雙十一”數據大屏整體架構介紹 262
- “雙十一”數據大屏核心代碼開發 263
第6章 OLAP數據分析 274
6.1 OLAP起源及現狀 274
6.2 OLAP引擎的分類 278
6.2.1 從數據建模方式分類 278
6.2.2 從數據處理時效分類 279
6.3 常見OLAP引擎的套用場景 280
6.4 常見離線OLAP引擎 282
6.4.1 Hive的原理及架構分析 282
6.4.2 Impala的原理及架構分析 284
6.4.3 Kylin的原理及架構分析 287
6.4.4 對比Hive、Impala和Kylin 290
6.5 常見實時OLAP引擎 290
6.5.1 Druid的原理及架構分析 290
6.5.2 ClickHouse的原理及架構分析 297
6.5.3 Doris的原理及架構分析 299
6.5.4 對比Druid、ClickHouse和Doris 302
6.6 Hive快速上手 303
6.6.1 Hive部署 303
6.6.2 Hive核心功能使用 307
- Hive的使用方式 307
- 【實戰】Hive中資料庫和表的操作 310
- 【實戰】Hive中的數據類型 314
- 【實戰】Hive中的表類型 318
- 【實戰】Hive中的視圖 324
- 【實戰】Hive中的高級函式 324
- 【實戰】Hive中的排序語句 327
6.7 【實戰】Hive離線數據統計分析 329
6.7.1 需求及架構分析 329
6.7.2 核心步驟實現 330
- 開發Agent配置檔案 331
- 啟動Agent,驗證結果 332
- 在Hive中創建外部分區表 332
- 向表中關聯分區數據 333
- 對關聯分區的操作封裝腳本333
- 創建視圖334
第7章 數 據全文檢索引擎 336
7.1 大數據時代全文檢索引擎的發展之路 336
7.1.1 全文檢索引擎的發展 337
7.1.2 全文檢索引擎技術選型 338
7.2 全文檢索引擎原理與架構分析 340
7.2.1 Lucene的原理及架構分析 340
- 原理分析340
- 架構分析340
7.2.2 Solr的原理及架構分析 343
- 原理分析343
- 架構分析344
7.2.3 Elasticsearch的原理及架構分析 345
- 核心原理及概念 345
- 分詞原理348
- 架構分析350
7.3 Elasticsearch快速上手 351
7.3.1 Elasticsearch集群安裝部署 351
- 安裝Elasticsearch集群 351
- 安裝Elasticsearch集群的監控管理工具 356
7.3.2 Elasticsearch核心功能的使用 359
- Elasticsearch的常見操作 359
- 【實戰】Elasticsearch集成中文分詞器 371
- 【實戰】Elasticsearch自定義詞庫 379
- 【實戰】Elasticsearch查詢詳解 383
- 【實戰】Elasticsearch SQL的使用 387
7.4 【實戰】基於Elasticsearch + HBase構建全文搜尋系統 390
7.4.1 全文搜尋系統需求分析 390
7.4.2 系統架構流程設計 391
- 整體架構流程設計391
- Elasticsearch和HBase數據同步的3種設計方案 392
- 底層執行流程393
7.4.3 開發全文搜尋系統 394
- 開發流程分析394
- 核心代碼實現395
- 運行項目406
第8章 分散式任務調度系統 411
8.1 任務調度系統的作用 411
8.2 傳統任務調度系統Crontab的痛點 411
8.3 分散式任務調度系統原理與架構分析 412
8.3.1 常見的分散式任務調度系統 413
8.3.2 Azkaban的原理及架構分析414
8.3.3 Ooize的原理及架構分析 417
8.3.4 DolphinScheduler的原理及架構分析 420
8.4 Azkaban快速上手 422
8.4.1 安裝Azkaban422
8.4.2 【實戰】配置一個定時執行的獨立任務 424
8.4.3 【實戰】配置一個帶有多級依賴的任務 432
8.5 【實戰】Azkaban在數據倉庫中的套用 435
8.5.1 創建Job檔案並進行壓縮 436
8.5.2 在Azkaban中創建項目並上傳gmv_calc.zip 441
8.5.3 給Azkaban中的任務設定定時執行 441
第9章 分散式資源管理 444
9.1 分散式資源管理 444
9.2 YARN的原理及架構分析445
9.3 YARN中的資源調度器 448
9.4 【實戰】配置和使用YARN多資源佇列 450
第10章 大數據平台搭建工具 456
10.1 如何快速搭建大數據平台 456
10.2 了解常見的大數據平台工具457
10.2.1 大數據平台工具HDP 457
10.2.2 大數據平台工具CDH 458
10.2.3 大數據平台工具CDP 460
架 構 篇
第11章 數據倉庫架構演進之路 463
11.1 什麼是數據倉庫 463
11.2 為什麼需要數據倉庫 464
11.3 數據倉庫的基礎知識 465
11.3.1 事實表和維度表 465
11.3.2 資料庫三範式 466
11.3.3 數據倉庫建模方式 467
11.3.4 維度建模模型 468
11.4 數據倉庫分層469
11.4.1 數據分層設計 470
11.4.2 數據倉庫命名規範 471
11.5 數據倉庫架構設計471
11.5.1 離線數據倉庫架構 472
11.5.2 實時數據倉庫架構 472
第12章 數據中台架構演進之路 475
12.1 什麼是中台 475
12.2 什麼是數據中台 477
12.3 數據中台演進過程478
12.4 數據中台架構479
12.4.1 采 480
12.4.2 存 480
12.4.3 通 481
12.4.4 用 481
第13章 典型行業大數據架構分析 482
13.1 直播大數據平台架構分析 482
13.2 電商大數據平台架構分析 483
13.3 金融大數據平台架構分析 484
13.4 交通大數據平台架構分析 485
13.5 遊戲大數據平台架構分析 486

作者簡介

徐葳,專注於大數據技術方向,屬於國內較早一批從事大數據的開發者,擁有10年以上網際網路公司軟體研發經驗。
曾任職於北京獵豹移動、中科院大數據技術研究院等企業。
曾為移動研究院、平安壽險、中信銀行、花旗銀行、中移線上等企業進行大數據技術企培。
check!

熱門詞條

聯絡我們