大數據技術及應用——批處理、流處理與批流一體化的實踐
劉曉勇 等
- 出版商: 電子工業
- 出版日期: 2026-05-01
- 售價: $354
- 語言: 簡體中文
- 頁數: 256
- ISBN: 7121527758
- ISBN-13: 9787121527753
-
相關分類:
大數據 Big-data
下單後立即進貨 (約4週~6週)
商品描述
本書以“技術體系化、架構前沿化、學習項目化”為特色,系統構建了涵蓋批處理、流處理與數據湖技術的大數據知識圖譜。全書以“批流一體”為核心架構思想,不僅詳解Hadoop、Spark、Flink、Kafka及Iceberg等主流框架的原理與應用,更通過貫穿始終的項目案例,引導讀者從零開始構建完整的大數據平臺,強化工程實踐與系統思維能力。本書內容分為3篇共12章,涵蓋了Hadoop生態核心、Spark批處理與Hive數據倉庫、Flink流計算、Kafka消息隊列以及Iceberg數據湖表格式的管理與優化等內容,並通過一個完整的綜合性項目實現從數據采集、多模式處理、湖倉一體化存儲到可視化分析的全流程,體現各技術在真實場景中的協同與整合。本書主要面向高等院校計算機類相關專業的本科生,同時也適用於希望系統入門大數據開發、掌握批流一體架構的工程師以及對大數據技術感興趣的讀者。書中配有豐富的實驗任務與項目代碼,便於開展課內實踐與延伸學習。
目錄大綱
第1篇 大數據基礎
第1章 大數據概論 / 1
1.1 什麼是大數據 / 1
1.1.1 大數據的定義 / 1
1.1.2 大數據的發展背景 / 2
1.1.3 大數據的5V特征 / 2
1.1.4 大數據與傳統數據的區別 / 3
1.1.5 大數據相關崗位與技能方向 / 3
1.2 大數據典型應用場景 / 4
1.2.1 互聯網與電商行業:數據驅動的智能商業 / 4
1.2.2 金融與保險行業:風險控制與精準營銷 / 4
1.2.3 醫療與健康行業:精準醫療與診療輔助 / 5
1.2.4 智能制造與物聯網:從感知到智能決策 / 5
1.2.5 城市管理與交通出行:構建智慧城市 / 6
1.3 大數據系統架構概覽 / 7
1.3.1 數據采集層 / 7
1.3.2 數據存儲層 / 8
1.3.3 數據計算層 / 8
1.3.4 數據分析與展示層 / 9
1.3.5 系統架構整合示意 / 9
1.4 大數據關鍵技術組件 / 9
1.4.1 數據存儲組件 / 10
1.4.2 數據計算組件 / 10
1.4.3 數據采集與傳輸組件 / 10
1.4.4 數據查詢與分析組件 / 10
1.4.5 數據管理與調度組件 / 11
1.5 大數據發展趨勢與挑戰 / 11
1.5.1 批流一體化趨勢 / 11
1.5.2 數據湖與湖倉一體化 / 12
1.5.3 雲原生與容器化大數據平臺 / 12
1.5.4 數據治理與隱私保護挑戰 / 12
本章小結 / 13
課後習題 / 13
第2章 Hadoop生態系統 / 15
2.1 Hadoop架構概述 / 15
2.1.1 Hadoop的由來與設計目標 / 15
2.1.2 核心組成:HDFS+MapReduce+YARN / 16
2.1.3 Hadoop的典型特點 / 17
2.1.4 Hadoop在現代平臺中的地位 / 17
2.2 HDFS分布式文件系統 / 18
2.2.1 文件切分與副本機制 / 19
2.2.2 NameNode與DataNode工作機制 / 20
2.2.3 讀寫流程詳解 / 21
2.2.4 容錯與高可用機制 / 22
2.2.5 HDFS常用命令與配置 / 23
2.3 MapReduce計算模型 / 24
2.3.1 MapReduce的計算模型概述 / 24
2.3.2 Map階段與Reduce階段工作機制 / 25
2.3.3 數據分區與Shuffle流程 / 26
2.3.4 MapReduce作業的執行流程 / 28
2.3.5 示例任務:詞頻統計程序解析 / 29
2.4 YARN資源管理框架 / 30
2.4.1 為什麼需要YARN / 30
2.4.2 YARN的核心架構組成 / 30
2.4.3 應用管理器生命周期 / 31
2.4.4 作業提交流程與組件協作 / 31
2.4.5 YARN與其他資源管理框架對比 / 32
本章小結 / 33
課後習題 / 33
第3章 基於Spark的批處理 / 34
3.1 Spark簡介與架構 / 34
3.1.1 Spark項目背景與發展歷史 / 34
3.1.2 Spark的核心組件概覽 / 35
3.1.3 Spark執行架構詳解 / 35
3.1.4 Spark與YARN、Kubernetes的部署對比 / 37
3.2 Spark Core編程基礎 / 38
3.2.1 RDD概念與特性 / 38
3.2.2 RDD的創建方式與依賴關系 / 39
3.2.3 常用轉換操作詳解 / 40
3.2.4 RDD數據分區與並行度控制 / 42
3.2.5 RDD編程案例:詞頻統計與日誌分析 / 42
3.3 Spark SQL數據處理 / 43
3.3.1 Spark SQL的定位與優勢 / 43
3.3.2 DataFrame與Dataset API / 43
3.3.3 Catalyst優化器與Tungsten引擎 / 44
3.3.4 SQL與DataFrame示例對照 / 45
3.3.5 Spark SQL與外部系統集成 / 45
3.4 Spark作業調度與性能優化 / 46
3.4.1 Spark作業DAG構建與Stage劃分機制 / 46
3.4.2 Shuffle操作與性能瓶頸 / 46
3.4.3 廣播變量與緩存機制 / 47
3.4.4 參數調優與資源配置建議 / 47
3.4.5 Spark UI作業監控與診斷技巧 / 47
3.5 Dataset類型系統與函數式編程支持 / 47
3.5.1 Dataset與JavaBean的映射關系 / 48
3.5.2 Encoder與類型推斷機制 / 48
3.5.3 Dataset常用函數式操作 / 48
3.5.4 Dataset的編譯期安全性與優化特征 / 49
3.6 Spark作業調優實戰案例 / 49
3.6.1 多階段作業拆分與重構 / 49
3.6.2 參數調優對比實驗 / 49
3.6.3 數據傾斜定位與優化案例 / 50
3.6.4 Spark UI與指標監控應用 / 50
本章小結 / 51
課後習題 / 51
第4章 基於Hive的數據分析 / 53
4.1 HBase概述與架構 / 53
4.1.1 Hive簡介 / 53
4.1.2 Hive架構組成 / 55
4.1.3 Hive的運行原理 / 56
4.2 Hive數據模型與類型系統 / 58
4.2.1 表的類型 / 58
4.2.2 數據類型 / 60
4.2.3 分區與分桶機制 / 61
4.3 HiveQL編程實踐 / 62
4.3.1 DDL操作 / 63
4.3.2 DML操作 / 64
4.3.3 高級SQL操作 / 65
4.4 Hive UDF與擴展功能 / 65
4.4.1 內置函數 / 67
4.4.2 自定義函數 / 68
4.4.3 Hive腳本與CLI / 69
4.5 Hive的執行引擎與性能優化 / 69
4.5.1 MapReduce、Tez與Spark引擎對比 / 70
4.5.2 查詢優化機制 / 71
4.5.3 文件格式與壓縮機制 / 73
4.6 Hive與數據倉庫實踐 / 74
4.6.1 數據倉庫分層模型 / 74
4.6.2 Hive在數據倉庫建設中的角色 / 74
4.6.3 與其他組件集成 / 75
4.7 Hive常見問題與調試技巧 / 76
4.7.1 常見錯誤與排查思路 / 76
4.7.2 日誌分析技巧 / 77
4.7.3 優化SQL的流程方法 / 78
4.8 實踐案例:用戶行為數據分析 / 79
4.8.1 場景設定 / 79
4.8.2 數據建模 / 79
4.8.3 SQL實現示例 / 80
4.8.4 可視化與實驗拓展建議 / 80
本章小結 / 81
課後習題 / 81
第5章 HBase基礎與應用 / 83
5.1 HBase概述與架構 / 83
5.1.1 HBase簡介 / 84
5.1.2 HBase架構組件 / 85
5.1.3 HBase與Hadoop的集成 / 85
5.2 HBase數據模型與存儲機制 / 87
5.2.1 數據模型與命名體系 / 87
5.2.2 存儲結構與訪問路徑 / 89
5.2.3 行鍵設計原則 / 89
5.3 HBase表操作與Java API編程 / 90
5.3.1 表的創建與基本操作(Shell命令) / 90
5.3.2 Java API讀寫示例 / 91
5.3.3 批量操作與過濾器 / 92
5.4 HBase應用場景與實踐 / 93
5.4.1 實時用戶畫像存儲 / 93
5.4.2 訂單明細數據存儲與索引 / 94
5.4.3 日誌數據采集與查詢 / 95
5.5 HBase調優與運維實踐 / 97
5.5.1 寫性能優化策略 / 97
5.5.2 讀性能優化策略 / 98
5.5.3 Region管理與負載均衡 / 99
本章小結 / 101
課後習題 / 101
第6章 批處理優化與實踐案例 / 103
6.1 批處理優化概述 / 103
6.1.1 批處理系統中的性能瓶頸 / 103
6.1.2 常見優化方向 / 104
6.1.3 執行引擎選擇與對比 / 105
6.2 Spark優化實踐 / 107
6.2.1 調優入口與觀察指標 / 107
6.2.2 常見問題與優化策略 / 108
6.2.3 參數調優建議 / 109
6.3 Hive查詢優化實踐 / 110
6.3.1 SQL邏輯優化 / 110
6.3.2 小文件合並與動態分區優化 / 111
6.3.3 MapJoin與SMB Join使用策略 / 112
6.4 跨組件協同優化 / 113
6.4.1 Hive+HBase聯合查詢性能建議 / 114
6.4.2 Spark讀取Hive/HBase數據的實踐優化 / 115
6.4.3 調度優化:Oozie/Airflow多作業依賴控制 / 116
6.5 實戰案例:電商訂單分析任務優化 / 116
6.5.1 業務背景與優化目標 / 117
6.5.2 數據建模與執行架構梳理 / 117
6.5.3 原始SQL分析與性能瓶頸識別 / 118
6.5.4 優化方案與執行落地 / 118
6.5.5 優化效果與執行對比 / 119
本章小結 / 120
第2篇 批處理與流處理技術一體化
第7章 Spark Streaming / 121
7.1 流計算概述 / 121
7.1.1 流計算基本概念 / 121
7.1.2 典型應用場景 / 122
7.1.3 Storm框架簡介 / 123
7.2 Spark Streaming原理與架構? / 123
7.2.1 核心組件 / 123
7.2.2 運行原理 / 124
7.3 DStream基礎 / 126
7.3.1 DStream核心概念 / 126
7.3.2 關鍵流程 / 128
7.3.3 容錯與狀態管理 / 131
7.4 Structured Streaming進階 / 134
7.4.1 設計理念 / 134
7.4.2 核心流程 / 138
7.4.3 端到端精確一次語義 / 141
7.5 案例應用:WordCount / 145
7.5.1 環境準備 / 145
7.5.2 數據源接入 / 145
7.5.3 處理邏輯 / 146
7.5.4 結果輸出 / 147
7.5.5 常見問題 / 147
本章小結 / 148
課後習題? / 148
第8章 Flink / 149
8.1 Flink概述 / 149
8.1.1 Flink基本概念 / 149
8.1.2 Flink與Spark Streaming的區別及應用場景 / 151
8.2 Flink原理和架構 / 152
8.2.1 核心組件 / 152
8.2.2 運行原理 / 154
8.3 Flink部署模式 / 156
8.3.1 Standalone模式 / 156
8.3.2 YARN模式 / 159
8.4 Flink時間處理 / 162
8.4.1 時間語義 / 162
8.4.2 水位線(Watermark)與延遲處理 / 163
8.4.3 窗口(Window) / 165
8.5 容錯機制 / 170
8.5.1 檢查點(Checkpoint) / 170
8.5.2 保存點(Savepoint) / 172
本章小結 / 174
課後習題? / 174
第9章 Kafka / 175
9.1 Kafka概述 / 175
9.1.1 Kafka基本概念 / 175
9.1.2 應用場景 / 177
9.2 Kafka原理與架構 / 178
9.2.1 核心組件 / 178
9.2.2 運行原理 / 179
9.2.3 架構圖解析 / 180
9.3 Kafka部署方法 / 181
9.3.1 單機環境部署與驗證 / 181
9.3.2 集群部署與參數調優 / 183
9.3.3 與HBase的數據管道搭建 / 185
9.3.4 與Spark/Flink的流處理集成 / 186
9.4 Kafka關鍵流程? / 188
9.4.1 消息生產流程 / 188
9.4.2 消息存儲機制 / 190
9.4.3 消息消費流程 / 192
9.4.4 分區分配策略與再均衡 / 193
9.5 案例應用:WordCount實時統計? / 195
9.5.1 場景描述? / 195
9.5.2 實現步驟? / 195
9.5.3 核心機制與擴展應用 / 197
本章小結 / 198
課後習題 / 198
第10章 Iceberg / 199
10.1 Iceberg概述? / 199
10.1.1 Iceberg基本概念 / 199
10.1.2 Iceberg應用場景? / 200
10.2 Iceberg原理和架構? / 201
10.2.1 主要組件? / 201
10.2.2 運行原理? / 203
10.3 Iceberg部署方法? / 204
10.3.1 環境準備? / 204
10.3.2 與計算引擎集成 / 206
10.3.3 存儲系統適配? / 208
10.3.4 驗證部署? / 209
10.4 Iceberg關鍵技術 / 210
10.4.1 ACID事務 / 210
10.4.2 時間旅行? / 211
10.4.3 模式演化 / 213
10.4.4 分區策略優化 / 215
10.5 案例應用:WordCount? / 216
10.5.1 案例準備 / 216
10.5.2 創建表 / 217
10.5.3 寫入數據 / 218
10.5.4 查詢驗證? / 218
本章小結 / 219
課後習題 / 219
第11章 流計算實踐案例:實時電商用戶行為分析與存儲實驗設計 / 220
11.1 實驗背景介紹 / 220
11.1.1 場景描述 / 220
11.1.2 實驗工具與環境 / 221
11.2 生成合成數據 / 221
11.2.1 數據定義與生成邏輯 / 221
11.2.2 數據驗證與質量控制 / 222
11.3 數據讀取 / 222
11.3.1 Spark Streaming消費實現 / 2223
11.3.2 Flink消費實現 / 224
11.3.3 消費性能調優 / 224
11.4 數據處理 / 225
11.4.1 Spark Streaming實現邏輯 / 225
11.4.2 Flink實現邏輯 / 226
11.5 結果存儲 / 227
11.5.1 Iceberg表設計與寫入 / 227
11.5.2 數據驗證與時間旅行 / 228
11.6 結果可視化 / 228
11.6.1 Grafana數據源配置 / 228
11.6.2 實時儀表盤設計 / 229
11.6.3 告警規則配置 / 229
本章小結 / 230
第3篇 大數據應用案例
第12章 電商平臺大數據處理技術實現 / 231
12.1 案例背景與需求概述 / 231
12.1.1 電商業務場景 / 231
12.1.2 技術挑戰 / 232
12.2 技術方案設計 / 232
12.2.1 基礎設施層 / 232
12.2.2 計算層架構 / 233
12.3 代碼實現模塊 / 233
12.3.1 數據讀取 / 234
12.3.2 核心處理邏輯 / 236
12.3.3 分析模型應用 / 238
本章小結 / 240
