內容簡介
《大數據平台架構與原型實現:數據中台建設實戰》涵蓋建設一個企業數據平台所需的各個重要環節,每個環節獨立成章。
圖書目錄
第1章 企業與數據1
1.1 數據的價值 3
1.2 企業的數據套用能力 6
1.3 企業的數據技術成熟度 12
1.4 數據團隊建設 14
1.4.1 大數據人才類型 14
1.4.2 數據團隊的組織與管理 20
1.5 建設數據文化 25
第2章 聚焦中台 27
2.1 中台簡介 27
2.2 企業信息系統現狀 28
2.2.1 點對點式的系統集成 29
2.2.2 重複建設 30
2.2.3 阻礙業務沉澱與發展 31
2.3 煙囪架構案例:會員管理 31
2.4 曾經的“救贖”——SOA38
2.5 中台詳解 41
2.5.1 中台架構 42
2.5.2 中台的技術體系 46
2.5.3 中台的組織架構 48
2.5.4 中台不是“銀彈” 51
2.6 數據中台 52
2.6.1 企業數據資產的現狀 53
2.6.2 數據中台具備的能力 54
2.6.3 數據中台建設策略 56
第3章 基礎設施 60
3.1 集群規劃 61
3.1.1 集群規模與節點配置 61
3.1.2 節點角色分配 63
3.2 創建實例與組網 65
3.2.1 登錄雲控制台 65
3.2.2 創建專有網路 67
3.2.3 創建安全組 67
3.2.4 創建實例 72
3.2.5 申請彈性公網IP位址 78
3.3 安裝集群 79
3.3.1 軟體清單 79
3.3.2 環境預配置 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 安裝單節點集群 121
第4章 架構與原型122
4.1 大數據平台架構設計 123
4.2 原型項目業務背景 127
4.3 原型項目架構方案 132
4.4 原型項目工程結構 139
4.5 部署原型項目 142
4.5.2 構建與部署 151
4.5.3 最小化增量部署 165
第5章 數據採集 167
5.1 技術堆疊與選型 168
5.2 需求與概要設計 171
5.3 原型項目設計 173
5.4 生成dummy數據 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 基本的數據採集 188
5.6.3 應對採集作業逾時 193
5.6.4 應對數據延遲就緒 197
第6章 主數據管理202
6.1 主數管理據系統的建設策略 202
6.2 原型設計 204
6.3 項目構建與運行 205
6.4 使用主數據 209
6.5 圍繞主數據進行領域建模 209
第7章 實時計算 221
7.1 ETL已死,流計算永存 221
7.2 技術堆疊與選型 223
7.2.1 Storm 223
7.2.2 Spark Streaming 225
7.2.3 Flink235
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 自定義狀態的流 255
7.10 自定義狀態的設計 260
7.11 Structured Streaming性能相關的參數 263
第8章 批處理與數據倉庫 266
8.1 大數據與數據倉庫 266
8.2 數據倉庫的基本理論 267
8.2.1 維度和度量 268
8.2.2 事實表和維度表 268
8.2.3 維度的基數 269
8.2.4 Cube和Cuboid 269
8.2.5 星型模型與雪花模型 269
8.3 批處理需求分析 271
8.4 數據倉庫架構 272
8.5 原型項目介紹與構建 277
8.6 數據倉庫工程結構 283
8.7 臨時數據層的設計與構建 285
8.8 源數據層的設計與構建 286
8.8.1 數據模型 287
8.8.2 建表並處理數據 288
8.8.3 SQL黏合與作業提交 293
8.8.4 增量導入與全量導入 298
8.8.5 源數據層的表分區 300
8.8.6 SRC層數據歸檔 300
8.9 明細數據層的設計與構建 301
8.9.1 數據模型 301
8.9.2 建表並處理數據 302
8.9.3 合併增量數據 305
8.9.4 SQL參數替換 307
8.10 匯總數據層的設計與構建 309
8.10.1 數據模型 309
8.10.2 建表並處理數據 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 實現UDF 332
第9章 數據存儲 335
9.1 批處理的數據存儲 335
9.2 NoSQL資料庫概覽 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章 作業調度 364
10.1 技術堆疊與選型 364
10.2 需求與概要設計 365
10.3 工作流的組織策略 366
10.4 工程結構 370
10.5 項目構建 372
10.6 實現工作流 375
10.7 實現coordinator 381
10.8 部署與提交工作流 385
10.9 作業依賴管理 389
10.9.1 Oozie的作業依賴管理 391
10.9.2 原型項目中的作業依賴 394
作者簡介
耿立超:
架構師,擁有14年IT系統開發和架構經驗,在大數據、企業級套用架構、SaaS、分散式存儲和領域驅動設計等方面都有豐富的實踐經驗,熱衷於函式式編程。
負責企業數據中台的架構設計和開發工作,對Hadoop和Spark生態系統有深入和廣泛的了解,參與過Hadoop商業發行版的開發,曾帶領團隊開發過多個基於大數據技術的企業數據平台,完成包含數據採集、數據倉庫、實時處理和數據服務的完整平台建設。