大數(shù)據(jù)平臺架構與原型實現(xiàn):數(shù)據(jù)中臺建設實戰(zhàn)
定 價:108 元
- 作者:耿立超
- 出版時間:2020/6/1
- ISBN:9787121390449
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:412
- 紙張:
- 版次:01
- 開本:16K
目前,在基于大數(shù)據(jù)技術的數(shù)據(jù)中臺建設過程中,由于缺乏完備的架構參考和類似于“腳手架”的原型項目,很多IT團隊會在工程技術層面上感到無從下手。開發(fā)人員迫切地需要設計良好的架構參考和簡單易用的原型項目幫助他們快速啟動自己的數(shù)據(jù)中臺建設,本書就是為這一目標而寫作的。本書以大數(shù)據(jù)平臺的架構設計為主題,圍繞一個2萬行源代碼的原型項目講解和演示如何在工程技術層面構建當下流行的數(shù)據(jù)中臺。全書涵蓋建設一個企業(yè)數(shù)據(jù)平臺所需的各個重要環(huán)節(jié),包括基礎設施建設、數(shù)據(jù)采集、主數(shù)據(jù)管理、實時計算、批處理與數(shù)據(jù)倉庫、數(shù)據(jù)存儲及作業(yè)調度,每個環(huán)節(jié)獨立成章,每一章介紹對應主題的架構方案和技術選型,然后結合原型項目講解具體的實現(xiàn)細節(jié)。如果你是一位架構師,本書可以幫助你提升對大數(shù)據(jù)平臺的整體把控力;如果你是中高級開發(fā)人員,建議你選擇自己感興趣的章節(jié)深入學習原型項目的代碼;如果你是企業(yè)的CIO或數(shù)據(jù)團隊的負責人,本書的第1、2、4章對于你定制企業(yè)數(shù)據(jù)中臺戰(zhàn)略、規(guī)劃數(shù)據(jù)平臺藍圖及組建數(shù)據(jù)團隊都有重要的參考價值。
耿立超,架構師,14年IT系統(tǒng)開發(fā)和架構經驗,對大數(shù)據(jù)、企業(yè)級應用架構、SaaS、分布式存儲和領域驅動設計有豐富的實踐經驗,熱衷函數(shù)式編程。目前負責企業(yè)數(shù)據(jù)中臺的架構設計和開發(fā)工作,對Hadoop/Spark 生態(tài)系統(tǒng)有深入和廣泛的了解,參與過Hadoop商業(yè)發(fā)行版的開發(fā),曾帶領團隊開發(fā)過多個基于大數(shù)據(jù)技術的企業(yè)數(shù)據(jù)平臺,完成包含數(shù)據(jù)采集、數(shù)據(jù)倉庫、實時處理和數(shù)據(jù)服務的完整平臺建設。
第1章 企業(yè)與數(shù)據(jù) 1
1.1 數(shù)據(jù)的價值 3
1.2 企業(yè)的數(shù)據(jù)應用能力 6
1.3 企業(yè)的數(shù)據(jù)技術成熟度 12
1.4 數(shù)據(jù)團隊建設 14
1.4.1 大數(shù)據(jù)人才類型 14
1.4.2 數(shù)據(jù)團隊的組織與管理 20
1.5 建設數(shù)據(jù)文化 25
第2章 聚焦中臺 27
2.1 中臺簡介 27
2.2 企業(yè)信息系統(tǒng)現(xiàn)狀 28
2.2.1 點對點式的系統(tǒng)集成 29
2.2.2 重復建設 30
2.2.3 阻礙業(yè)務沉淀與發(fā)展 31
2.3 煙囪架構案例:會員管理 31
2.4 曾經的“救贖”——SOA 38
2.5 中臺詳解 41
2.5.1 中臺架構 42
2.5.2 中臺的技術體系 46
2.5.3 中臺的組織架構 48
2.5.4 中臺不是“銀彈” 51
2.6 數(shù)據(jù)中臺 52
2.6.1 企業(yè)數(shù)據(jù)資產的現(xiàn)狀 53
2.6.2 數(shù)據(jù)中臺具備的能力 54
2.6.3 數(shù)據(jù)中臺建設策略 56
第3章 基礎設施 60
3.1 集群規(guī)劃 61
3.1.1 集群規(guī)模與節(jié)點配置 61
3.1.2 節(jié)點角色分配 63
3.2 創(chuàng)建實例與組網(wǎng) 65
3.2.1 登錄云控制臺 65
3.2.2 創(chuàng)建專有網(wǎng)絡 67
3.2.3 創(chuàng)建安全組 67
3.2.4 創(chuàng)建實例 72
3.2.5 申請彈性公網(wǎng)IP地址 78
3.3 安裝集群 79
3.3.1 軟件清單 79
3.3.2 環(huán)境預配置 80
3.3.3 安裝Redis 86
3.3.4 安裝Galera(MySQL集群) 87
3.3.5 搭建本地CDH Repository 100
3.3.6 安裝Cloudera Manager Server 103
3.3.7 安裝CDH 110
3.3.8 高可用配置 114
3.3.9 安裝Spark 2 117
3.3.10 啟用Spark SQL 118
3.4 安裝單節(jié)點集群 121
第4章 架構與原型 122
4.1 大數(shù)據(jù)平臺架構設計 123
4.2 原型項目業(yè)務背景 127
4.3 原型項目架構方案 132
4.4 原型項目工程結構 139
4.5 部署原型項目 142
4.5.1 配置服務器 142
4.5.2 構建與部署 151
4.5.3 最小化增量部署 165
第5章 數(shù)據(jù)采集 167
5.1 技術堆棧與選型 168
5.2 需求與概要設計 171
5.3 原型項目設計 173
5.4 生成dummy數(shù)據(jù) 174
5.5 基于Sqoop的批量導入 177
5.5.1 項目原型 177
5.5.2 使用Sqoop 180
5.5.3 增量導入與全量導入 184
5.6 基于Camel的實時采集 185
5.6.1 項目原型 186
5.6.2 基本的數(shù)據(jù)采集 188
5.6.3 應對采集作業(yè)超時 193
5.6.4 應對數(shù)據(jù)延遲就緒 197
第6章 主數(shù)據(jù)管理 202
6.1 主數(shù)管理據(jù)系統(tǒng)的建設策略 202
6.2 原型設計 204
6.3 項目構建與運行 205
6.4 使用主數(shù)據(jù) 209
6.5 圍繞主數(shù)據(jù)進行領域建模 209
6.6 主數(shù)據(jù)在內存數(shù)據(jù)庫中的組織粒度 219
第7章 實時計算 221
7.1 ETL已死,流計算永存 221
7.2 技術堆棧與選型 223
7.2.1 Storm 223
7.2.2 Spark Streaming 225
7.2.3 Flink 235
7.2.4 Kafka Stream 237
7.2.5 關于選型的考量 238
7.3 實時計算需求分析 239
7.4 原型項目介紹與構建 241
7.5 流計算工程結構 243
7.6 集成Kafka 245
7.7 集成HBase 246
7.8 基于時間窗口的聚合運算 252
7.9 自定義狀態(tài)的流 255
7.10 自定義狀態(tài)的設計 260
7.11 Structured Streaming性能相關的參數(shù) 263
第8章 批處理與數(shù)據(jù)倉庫 266
8.1 大數(shù)據(jù)與數(shù)據(jù)倉庫 266
8.2 數(shù)據(jù)倉庫的基本理論 267
8.2.1 維度和度量 268
8.2.2 事實表和維度表 268
8.2.3 維度的基數(shù) 269
8.2.4 Cube和Cuboid 269
8.2.5 星型模型與雪花模型 269
8.3 批處理需求分析 271
8.4 數(shù)據(jù)倉庫架構 272
8.5 原型項目介紹與構建 277
8.6 數(shù)據(jù)倉庫工程結構 283
8.7 臨時數(shù)據(jù)層的設計與構建 285
8.8 源數(shù)據(jù)層的設計與構建 286
8.8.1 數(shù)據(jù)模型 287
8.8.2 建表并處理數(shù)據(jù) 288
8.8.3 SQL黏合與作業(yè)提交 293
8.8.4 增量導入與全量導入 298
8.8.5 源數(shù)據(jù)層的表分區(qū) 300
8.8.6 SRC層數(shù)據(jù)歸檔 300
8.9 明細數(shù)據(jù)層的設計與構建 301
8.9.1 數(shù)據(jù)模型 301
8.9.2 建表并處理數(shù)據(jù) 302
8.9.3 合并增量數(shù)據(jù) 305
8.9.4 SQL參數(shù)替換 307
8.10 匯總數(shù)據(jù)層的設計與構建 309
8.10.1 數(shù)據(jù)模型 309
8.10.2 建表并處理數(shù)據(jù) 312
8.10.3 構建維度模型 314
8.10.4 緩慢變化維度 318
8.10.5 2型SCD表 320
8.10.6 生成代理主鍵 328
8.10.7 運行示例 329
8.11 實現(xiàn)UDF 332
第9章 數(shù)據(jù)存儲 335
9.1 批處理的數(shù)據(jù)存儲 335
9.2 NoSQL數(shù)據(jù)庫概覽 341
9.3 HBase與Cassandra 343
9.4 HBase的Rowkey設計 349
9.4.1 “熱點”問題與應對策略 349
9.4.2 定長處理 352
9.4.3 最佳實踐 352
9.5 探索HBase二級索引 356
第10章 作業(yè)調度 364
10.1 技術堆棧與選型 364
10.2 需求與概要設計 365
10.3 工作流的組織策略 366
10.4 工程結構 370
10.5 項目構建 372
10.6 實現(xiàn)工作流 375
10.7 實現(xiàn)coordinator 381
10.8 部署與提交工作流 385
10.9 作業(yè)依賴管理 389
10.9.1 Oozie的作業(yè)依賴管理 391
10.9.2 原型項目中的作業(yè)依賴 394