實時大數(shù)據(jù)分析:基于Storm、Spark技術(shù)的實時應(yīng)用
定 價:79 元
- 作者:(美) Sumit Gupta, Sh
- 出版時間:2018/1/1
- ISBN:9787302477280
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP274
- 頁碼:
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書詳細闡述了實時大數(shù)據(jù)分析的實現(xiàn)過程,主要包括大數(shù)據(jù)技術(shù)前景及分析平臺;熟悉Storm平臺;用Storm處理數(shù)據(jù);Trident介紹和Storm性能優(yōu)化;熟悉Kinesis;熟悉Spark;RDD編程;Spark的SQL查詢引擎;Spark Streaming分析流數(shù)據(jù)以及Lambda架構(gòu)等內(nèi)容。此外,本書還提供了相應(yīng)的示例、代碼,以幫助讀者進一步理解相關(guān)方案的實現(xiàn)過程。
本書適合作為高等院校計算機及相關(guān)專業(yè)的教材和教學(xué)參考書,也可作為相關(guān)開發(fā)人員的自學(xué)教材和參考手冊。
考慮大數(shù)據(jù)技術(shù)背景,本書結(jié)合實際用例介紹了應(yīng)用Apache Storm和Apache Spark進行實時大數(shù)據(jù)分析的實現(xiàn)過程,為讀者提供了快速設(shè)計、應(yīng)用和部署實時分析所需的技術(shù)。
目 錄
第1章 大數(shù)據(jù)技術(shù)前景及分析平臺 1
1.1 大數(shù)據(jù)的概念 1
1.2 大數(shù)據(jù)的維度范式 2
1.3 大數(shù)據(jù)生態(tài)系統(tǒng) 3
1.4 大數(shù)據(jù)基礎(chǔ)設(shè)施 4
1.5 大數(shù)據(jù)生態(tài)系統(tǒng)組件 5
1.5.1 構(gòu)建業(yè)務(wù)解決方案 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 本章小結(jié) 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 任務(wù) 24
2.3.6 工作者 25
2.4 Storm的架構(gòu)及其組件 25
2.4.1 Zookeeper集群 25
2.4.2 Storm集群 25
2.5 如何以及何時使用Storm 27
2.6 Storm的內(nèi)部特性 32
2.6.1 Storm的并行性 32
2.6.2 Storm的內(nèi)部消息處理 34
2.7 本章小結(jié) 36
第3章 用Storm處理數(shù)據(jù) 37
3.1 Storm輸入數(shù)據(jù)源 37
3.2 認識Kafka 38
3.2.1 關(guān)于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)結(jié) 52
3.4.2 批處理 53
3.5 Storm的持久性 53
3.6 本章小結(jié) 58
第4章 Trident概述和Storm性能優(yōu)化 59
4.1 使用Trident 59
4.1.1 事務(wù) 60
4.1.2 Trident 拓撲 60
4.1.3 Trident操作 61
4.2 理解LMAX 65
4.2.1 內(nèi)存和緩存 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 本章小結(jié) 83
第5章 熟悉Kinesis 84
5.1 Kinesis架構(gòu)概述 84
5.1.1 Amazon Kinesis的優(yōu)勢和用例 84
5.1.2 高級體系結(jié)構(gòu) 86
5.1.3 Kinesis的組件 87
5.2 創(chuàng)建Kinesis流服務(wù) 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 本章小結(jié) 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 何時應(yīng)用Spark—實際用例 112
6.2 Spark的架構(gòu) 114
6.2.1 高級架構(gòu) 114
6.2.2 Spark擴展/庫 116
6.2.3 Spark的封裝結(jié)構(gòu)和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 本章小結(jié) 135
第7章 使用RDD編程 136
7.1 理解Spark轉(zhuǎn)換及操作 136
7.1.1 RDD API 137
7.1.2 RDD轉(zhuǎn)換操作 139
7.1.3 RDD功能操作 141
7.2 編程Spark轉(zhuǎn)換及操作 142
7.3 Spark中的持久性 157
7.4 本章小結(jié) 159
第8章 Spark的SQL查詢引擎——Spark SQL 160
8.1 Spark SQL的體系結(jié)構(gòu) 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轉(zhuǎn)換為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 性能調(diào)優(yōu)和最佳實踐 190
8.6.1 分區(qū)和并行性 191
8.6.2 序列化 191
8.6.3 緩存 192
8.6.4 內(nèi)存調(diào)優(yōu) 192
8.7 本章小結(jié) 194
第9章 用Spark Streaming分析流數(shù)據(jù) 195
9.1 高級架構(gòu) 195
9.1.1 Spark Streaming的組件 196
9.1.2 Spark Streaming的封裝結(jié)構(gòu) 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è)的高級架構(gòu) 209
9.3.2 編寫Crime生產(chǎn)者 210
9.3.3 編寫Stream消費者和轉(zhuǎn)換器 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應(yīng)用程序 218
9.5 本章小結(jié) 219
第10章 介紹Lambda架構(gòu) 220
10.1 什么是Lambda架構(gòu) 220
10.1.1 Lambda架構(gòu)的需求 220
10.1.2 Lambda架構(gòu)的層/組件 222
10.2 Lambda架構(gòu)的技術(shù)矩陣 226
10.3 Lambda架構(gòu)的實現(xiàn) 228
10.3.1 高級架構(gòu) 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 編寫服務(wù)層代碼 239
10.3.7 執(zhí)行所有層代碼 241
10.4 本章小結(jié) 243