實(shí)時(shí)大數(shù)據(jù)分析:基于Storm、Spark技術(shù)的實(shí)時(shí)應(yīng)用
定 價(jià):79 元
- 作者:(美) Sumit Gupta, Sh
- 出版時(shí)間:2018/1/1
- ISBN:9787302477280
- 出 版 社:清華大學(xué)出版社
- 中圖法分類(lèi):TP274
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16K
本書(shū)詳細(xì)闡述了實(shí)時(shí)大數(shù)據(jù)分析的實(shí)現(xiàn)過(guò)程,主要包括大數(shù)據(jù)技術(shù)前景及分析平臺(tái);熟悉Storm平臺(tái);用Storm處理數(shù)據(jù);Trident介紹和Storm性能優(yōu)化;熟悉Kinesis;熟悉Spark;RDD編程;Spark的SQL查詢引擎;Spark Streaming分析流數(shù)據(jù)以及Lambda架構(gòu)等內(nèi)容。此外,本書(shū)還提供了相應(yīng)的示例、代碼,以幫助讀者進(jìn)一步理解相關(guān)方案的實(shí)現(xiàn)過(guò)程。
本書(shū)適合作為高等院校計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)的教材和教學(xué)參考書(shū),也可作為相關(guān)開(kāi)發(fā)人員的自學(xué)教材和參考手冊(cè)。
考慮大數(shù)據(jù)技術(shù)背景,本書(shū)結(jié)合實(shí)際用例介紹了應(yīng)用Apache Storm和Apache Spark進(jìn)行實(shí)時(shí)大數(shù)據(jù)分析的實(shí)現(xiàn)過(guò)程,為讀者提供了快速設(shè)計(jì)、應(yīng)用和部署實(shí)時(shí)分析所需的技術(shù)。
目 錄
第1章 大數(shù)據(jù)技術(shù)前景及分析平臺(tái) 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 解決方案實(shí)施 8
1.5.4 呈現(xiàn) 9
1.6 分布式批處理 9
1.7 分布式數(shù)據(jù)庫(kù)(NoSQL) 13
1.7.1 NoSQL數(shù)據(jù)庫(kù)的優(yōu)勢(shì) 15
1.7.2 選擇NoSQL數(shù)據(jù)庫(kù) 16
1.8 實(shí)時(shí)處理 16
1.8.1 電信或移動(dòng)通信場(chǎng)景 17
1.8.2 運(yùn)輸和物流 17
1.8.3 互聯(lián)的車(chē)輛 18
1.8.4 金融部門(mén) 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 拓?fù)?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 如何以及何時(shí)使用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 認(rèn)識(shí)Kafka 38
3.2.1 關(guān)于Kafka的更多知識(shí) 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的簡(jiǎn)單模式 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 拓?fù)?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é)點(diǎn)間通信 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登錄頁(yè)面 75
4.4.2 拓?fù)涫醉?yè) 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)勢(shì)和用例 84
5.1.2 高級(jí)體系結(jié)構(gòu) 86
5.1.3 Kinesis的組件 87
5.2 創(chuàng)建Kinesis流服務(wù) 90
5.2.1 訪問(wèn)AWS 90
5.2.2 配置開(kāi)發(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流消費(fèi)者 102
5.2.6 產(chǎn)生和消耗犯罪警報(bào) 102
5.3 本章小結(jié) 105
第6章 熟悉Spark 106
6.1 Spark概述 107
6.1.1 批量數(shù)據(jù)處理 107
6.1.2 實(shí)時(shí)數(shù)據(jù)處理 108
6.1.3 一站式解決方案Apache Spark 110
6.1.4 何時(shí)應(yīng)用Spark—實(shí)際用例 112
6.2 Spark的架構(gòu) 114
6.2.1 高級(jí)架構(gòu) 114
6.2.2 Spark擴(kuò)展/庫(kù) 116
6.2.3 Spark的封裝結(jié)構(gòu)和API 117
6.2.4 Spark的執(zhí)行模型—主管-工作者視圖 119
6.3 彈性分布式數(shù)據(jù)集(RDD) 122
6.4 編寫(xiě)執(zhí)行第一個(gè)Spark程序 124
6.4.1 硬件需求 125
6.4.2 基本軟件安裝 125
6.4.3 配置Spark集群 127
6.4.4 用Scala編寫(xiě)Spark作業(yè) 129
6.4.5 用Java編寫(xiě)Spark作業(yè) 132
6.5 故障排除提示和技巧 133
6.5.1 Spark所用的端口數(shù)目 134
6.5.2 類(lèi)路徑問(wèn)題—類(lèi)未找到異常 134
6.5.3 其他常見(jiàn)異常 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 編寫(xiě)第一個(gè)Spark SQL作業(yè) 166
8.2.1 用Scala編寫(xiě)Spark SQL作業(yè) 166
8.2.2 用Java編寫(xiě)Spark SQL作業(yè) 170
8.3 將RDD轉(zhuǎn)換為DataFrame 173
8.3.1 自動(dòng)化過(guò)程 174
8.3.2 手動(dòng)過(guò)程 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)和最佳實(shí)踐 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 高級(jí)架構(gòu) 195
9.1.1 Spark Streaming的組件 196
9.1.2 Spark Streaming的封裝結(jié)構(gòu) 198
9.2 編寫(xiě)第一個(gè)Spark Streaming作業(yè) 200
9.2.1 創(chuàng)建流生成器 201
9.2.2 用Scala編寫(xiě)Spark Streaming作業(yè) 202
9.2.3 用Java編寫(xiě)Spark Streaming作業(yè) 205
9.2.4 執(zhí)行Spark Streaming作業(yè) 207
9.3 實(shí)時(shí)查詢流數(shù)據(jù) 209
9.3.1 作業(yè)的高級(jí)架構(gòu) 209
9.3.2 編寫(xiě)Crime生產(chǎn)者 210
9.3.3 編寫(xiě)Stream消費(fèi)者和轉(zhuǎn)換器 212
9.3.4 執(zhí)行SQL Streaming Crime分析器 214
9.4 部署和監(jiān)測(cè) 216
9.4.1 用于Spark Streaming的集群管理器 216
9.4.2 監(jiān)測(cè)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)的實(shí)現(xiàn) 228
10.3.1 高級(jí)架構(gòu) 229
10.3.2 配置Apache Cassandra和Spark 230
10.3.3 編寫(xiě)自定義生產(chǎn)者程序 233
10.3.4 編寫(xiě)實(shí)時(shí)層代碼 235
10.3.5 編寫(xiě)批處理層代碼 238
10.3.6 編寫(xiě)服務(wù)層代碼 239
10.3.7 執(zhí)行所有層代碼 241
10.4 本章小結(jié) 243