實時大數(shù)據(jù)分析:基于Storm、Spark技術的實時應用
定 價:79 元
當前圖書已被 4 所學校薦購過!
查看明細
- 作者:(美) Sumit Gupta, Sh
- 出版時間:2018/1/1
- ISBN:9787302477280
- 出 版 社:清華大學出版社
- 中圖法分類:TP274
- 頁碼:
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書詳細闡述了實時大數(shù)據(jù)分析的實現(xiàn)過程,主要包括大數(shù)據(jù)技術前景及分析平臺;熟悉Storm平臺;用Storm處理數(shù)據(jù);Trident介紹和Storm性能優(yōu)化;熟悉Kinesis;熟悉Spark;RDD編程;Spark的SQL查詢引擎;Spark Streaming分析流數(shù)據(jù)以及Lambda架構等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現(xiàn)過程。
本書適合作為高等院校計算機及相關專業(yè)的教材和教學參考書,也可作為相關開發(fā)人員的自學教材和參考手冊。
考慮大數(shù)據(jù)技術背景,本書結合實際用例介紹了應用Apache Storm和Apache Spark進行實時大數(shù)據(jù)分析的實現(xiàn)過程,為讀者提供了快速設計、應用和部署實時分析所需的技術。
目 錄
第1章 大數(shù)據(jù)技術前景及分析平臺 1
1.1 大數(shù)據(jù)的概念 1
1.2 大數(shù)據(jù)的維度范式 2
1.3 大數(shù)據(jù)生態(tài)系統(tǒng) 3
1.4 大數(shù)據(jù)基礎設施 4
1.5 大數(shù)據(jù)生態(tài)系統(tǒng)組件 5
1.5.1 構建業(yè)務解決方案 8
1.5.2 數(shù)據(jù)集處理 8
1.5.3 解決方案實施 8
1.5.4 呈現(xiàn) 9
1.6 分布式批處理 9
1.7 分布式數(shù)據(jù)庫(NoSQL) 13
1.7.1 NoSQL數(shù)據(jù)庫的優(yōu)勢 15
1.7.2 選擇NoSQL數(shù)據(jù)庫 16
1.8 實時處理 16
1.8.1 電信或移動通信場景 17
1.8.2 運輸和物流 17
1.8.3 互聯(lián)的車輛 18
1.8.4 金融部門 18
1.9 本章小結 18
第2章 熟悉Storm 19
2.1 Storm概述 19
2.2 Storm的發(fā)展 20
2.3 Storm的抽象概念 22
2.3.1 流 22
2.3.2 拓撲 22
2.3.3 Spout 23
2.3.4 Bolt 23
2.3.5 任務 24
2.3.6 工作者 25
2.4 Storm的架構及其組件 25
2.4.1 Zookeeper集群 25
2.4.2 Storm集群 25
2.5 如何以及何時使用Storm 27
2.6 Storm的內部特性 32
2.6.1 Storm的并行性 32
2.6.2 Storm的內部消息處理 34
2.7 本章小結 36
第3章 用Storm處理數(shù)據(jù) 37
3.1 Storm輸入數(shù)據(jù)源 37
3.2 認識Kafka 38
3.2.1 關于Kafka的更多知識 39
3.2.2 Storm的其他輸入數(shù)據(jù)源 43
3.2.3 Kafka作為輸入數(shù)據(jù)源 46
3.3 數(shù)據(jù)處理的可靠性 47
3.3.1 錨定的概念和可靠性 49
3.3.2 Storm的acking框架 51
3.4 Storm的簡單模式 52
3.4.1 聯(lián)結 52
3.4.2 批處理 53
3.5 Storm的持久性 53
3.6 本章小結 58
第4章 Trident概述和Storm性能優(yōu)化 59
4.1 使用Trident 59
4.1.1 事務 60
4.1.2 Trident 拓撲 60
4.1.3 Trident操作 61
4.2 理解LMAX 65
4.2.1 內存和緩存 66
4.2.2 環(huán)形緩沖區(qū)—粉碎器的心臟 69
4.3 Storm的節(jié)點間通信 72
4.3.1 ZeroMQ 73
4.3.2 Storm的ZeroMQ配置 74
4.3.3 Netty 74
4.4 理解Storm UI 75
4.4.1 Storm UI登錄頁面 75
4.4.2 拓撲首頁 78
4.5 優(yōu)化Storm性能 80
4.6 本章小結 83
第5章 熟悉Kinesis 84
5.1 Kinesis架構概述 84
5.1.1 Amazon Kinesis的優(yōu)勢和用例 84
5.1.2 高級體系結構 86
5.1.3 Kinesis的組件 87
5.2 創(chuàng)建Kinesis流服務 90
5.2.1 訪問AWS 90
5.2.2 配置開發(fā)環(huán)境 91
5.2.3 創(chuàng)建Kinesis流 93
5.2.4 創(chuàng)建Kinesis流生產(chǎn)者 97
5.2.5 創(chuàng)建Kinesis流消費者 102
5.2.6 產(chǎn)生和消耗犯罪警報 102
5.3 本章小結 105
第6章 熟悉Spark 106
6.1 Spark概述 107
6.1.1 批量數(shù)據(jù)處理 107
6.1.2 實時數(shù)據(jù)處理 108
6.1.3 一站式解決方案Apache Spark 110
6.1.4 何時應用Spark—實際用例 112
6.2 Spark的架構 114
6.2.1 高級架構 114
6.2.2 Spark擴展/庫 116
6.2.3 Spark的封裝結構和API 117
6.2.4 Spark的執(zhí)行模型—主管-工作者視圖 119
6.3 彈性分布式數(shù)據(jù)集(RDD) 122
6.4 編寫執(zhí)行第一個Spark程序 124
6.4.1 硬件需求 125
6.4.2 基本軟件安裝 125
6.4.3 配置Spark集群 127
6.4.4 用Scala編寫Spark作業(yè) 129
6.4.5 用Java編寫Spark作業(yè) 132
6.5 故障排除提示和技巧 133
6.5.1 Spark所用的端口數(shù)目 134
6.5.2 類路徑問題—類未找到異常 134
6.5.3 其他常見異常 134
6.6 本章小結 135
第7章 使用RDD編程 136
7.1 理解Spark轉換及操作 136
7.1.1 RDD API 137
7.1.2 RDD轉換操作 139
7.1.3 RDD功能操作 141
7.2 編程Spark轉換及操作 142
7.3 Spark中的持久性 157
7.4 本章小結 159
第8章 Spark的SQL查詢引擎——Spark SQL 160
8.1 Spark SQL的體系結構 161
8.1.1 Spark SQL的出現(xiàn) 161
8.1.2 Spark SQL的組件 162
8.1.3 Catalyst Optimizer 164
8.1.4 SQL/Hive context 165
8.2 編寫第一個Spark SQL作業(yè) 166
8.2.1 用Scala編寫Spark SQL作業(yè) 166
8.2.2 用Java編寫Spark SQL作業(yè) 170
8.3 將RDD轉換為DataFrame 173
8.3.1 自動化過程 174
8.3.2 手動過程 176
8.4 使用Parquet 179
8.4.1 在HDFS中持久化Parquet數(shù)據(jù) 182
8.4.2 數(shù)據(jù)分區(qū)和模式演化/合并 185
8.5 Hive表的集成 186
8.6 性能調優(yōu)和最佳實踐 190
8.6.1 分區(qū)和并行性 191
8.6.2 序列化 191
8.6.3 緩存 192
8.6.4 內存調優(yōu) 192
8.7 本章小結 194
第9章 用Spark Streaming分析流數(shù)據(jù) 195
9.1 高級架構 195
9.1.1 Spark Streaming的組件 196
9.1.2 Spark Streaming的封裝結構 198
9.2 編寫第一個Spark Streaming作業(yè) 200
9.2.1 創(chuàng)建流生成器 201
9.2.2 用Scala編寫Spark Streaming作業(yè) 202
9.2.3 用Java編寫Spark Streaming作業(yè) 205
9.2.4 執(zhí)行Spark Streaming作業(yè) 207
9.3 實時查詢流數(shù)據(jù) 209
9.3.1 作業(yè)的高級架構 209
9.3.2 編寫Crime生產(chǎn)者 210
9.3.3 編寫Stream消費者和轉換器 212
9.3.4 執(zhí)行SQL Streaming Crime分析器 214
9.4 部署和監(jiān)測 216
9.4.1 用于Spark Streaming的集群管理器 216
9.4.2 監(jiān)測Spark Streaming應用程序 218
9.5 本章小結 219
第10章 介紹Lambda架構 220
10.1 什么是Lambda架構 220
10.1.1 Lambda架構的需求 220
10.1.2 Lambda架構的層/組件 222
10.2 Lambda架構的技術矩陣 226
10.3 Lambda架構的實現(xiàn) 228
10.3.1 高級架構 229
10.3.2 配置Apache Cassandra和Spark 230
10.3.3 編寫自定義生產(chǎn)者程序 233
10.3.4 編寫實時層代碼 235
10.3.5 編寫批處理層代碼 238
10.3.6 編寫服務層代碼 239
10.3.7 執(zhí)行所有層代碼 241
10.4 本章小結 243