實(shí)時(shí)數(shù)據(jù)處理和分析指南
定 價(jià):79 元
- 作者:[印度]希爾皮·薩克塞納(Shilpi Saxena) [印度]沙魯巴·古普塔( Saurabh Gupta)
- 出版時(shí)間:2020/5/1
- ISBN:9787115524867
- 出 版 社:人民郵電出版社
- 中圖法分類:TP274-62
- 頁(yè)碼:280
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
《實(shí)時(shí)數(shù)據(jù)處理和分析指南》主要介紹實(shí)時(shí)大數(shù)據(jù)計(jì)算領(lǐng)域的相關(guān)技巧和經(jīng)驗(yàn),包括Flink、Spark和Storm等流處理框架技術(shù)。全書(shū)從搭建開(kāi)發(fā)環(huán)境開(kāi)始,逐步實(shí)現(xiàn)流處理,循序漸進(jìn)地引導(dǎo)讀者學(xué)習(xí)如何利用Rabbit MQ、Kafka和NiFi以及Storm、Spark、Flink和Beam等組件協(xié)同應(yīng)用來(lái)解決實(shí)際問(wèn)題。
本書(shū)內(nèi)容分為6個(gè)部分,分別是“導(dǎo)言——熟悉實(shí)時(shí)分析”“搭建基礎(chǔ)設(shè)施”“Storm實(shí)時(shí)計(jì)算”“使用Spark實(shí)現(xiàn)實(shí)時(shí)計(jì)算”“使用Flink實(shí)現(xiàn)實(shí)時(shí)分析”以及“綜合應(yīng)用”。
在閱讀本書(shū)之前,讀者應(yīng)具備基本的Java和Scala編程基礎(chǔ),還應(yīng)熟悉Maven、Java和Eclipse的安裝和配置流程。
1.全書(shū)側(cè)重實(shí)用性,涵蓋從數(shù)據(jù)的采集、可視化到數(shù)據(jù)的持久化等各個(gè)方面的內(nèi)容,幫助讀者提升自主解決挑戰(zhàn)性問(wèn)題的能力;
2.本書(shū)包括如何設(shè)置組件、基礎(chǔ)的Demo演示、系統(tǒng)集成、高級(jí)用例,以及報(bào)警和監(jiān)控等主題,旨在幫助讀者了解當(dāng)今流行的實(shí)時(shí)處理工具,如Apache Spark、Apache Flink和Storm;
3.本書(shū)結(jié)合實(shí)際用例展示上述技術(shù)的具體應(yīng)用,真正將理論運(yùn)用到實(shí)踐中,解決實(shí)際問(wèn)題;
4.通過(guò)閱讀本書(shū),讀者可以掌握實(shí)時(shí)數(shù)據(jù)處理和分析的相關(guān)知識(shí),并能了解如何以最恰當(dāng)?shù)姆绞皆谏a(chǎn)環(huán)境中部署解決方案。
希爾皮·薩克塞納(Shilpi Saxena)是IT領(lǐng)域的一位技術(shù)布道者。她曾涉足多個(gè)領(lǐng)域(機(jī)器對(duì)機(jī)器空間、醫(yī)療保健、電信、人才招聘和制造業(yè))。在企業(yè)解決方案的構(gòu)思和執(zhí)行的所有方面,以及在軟件行業(yè)的產(chǎn)品和服務(wù)方面有超過(guò)12年的經(jīng)驗(yàn)。她一直在大數(shù)據(jù)領(lǐng)域從事設(shè)計(jì)、管理和提供解決方案,并領(lǐng)導(dǎo)著一支高水平和分布在各地的精英工程師團(tuán)隊(duì)。
沙魯巴·古普塔(Saurabh Gupta)是一名軟件工程師,有數(shù)十年的IT行業(yè)從業(yè)經(jīng)驗(yàn),目前從事處理和設(shè)計(jì)在生產(chǎn)中運(yùn)行的實(shí)時(shí)和批處理項(xiàng)目的相關(guān)工作,主要包括Impala、Storm、NiFi、Kafka等技術(shù)以及在AWS上部署Docker,他還參與了各種物聯(lián)網(wǎng)項(xiàng)目,涉及電信、醫(yī)療保健、智能城市、智能汽車等領(lǐng)域。
第 一部分 導(dǎo)言—熟悉實(shí)時(shí)分析
第 1章 實(shí)時(shí)分析簡(jiǎn)介 2
1.1 大數(shù)據(jù)的定義 2
1.2 大數(shù)據(jù)的基礎(chǔ)設(shè)施 3
1.3 實(shí)時(shí)分析—神話與現(xiàn)實(shí) 6
1.4 近實(shí)時(shí)解決方案—可用的架構(gòu) 9
1.4.1 NRT的Storm解決方案 9
1.4.2 NRT的Spark解決方案 10
1.5 Lambda架構(gòu)—分析可能性 11
1.6 物聯(lián)網(wǎng)—想法與可能性 13
1.7 云—考慮NRT和物聯(lián)網(wǎng) 17
1.8 小結(jié) 18
第 2章 實(shí)時(shí)應(yīng)用的基本組件 19
2.1 NRT系統(tǒng)及其構(gòu)建模塊 19
2.1.1 數(shù)據(jù)采集 21
2.1.2 流處理 22
2.1.3 分析層—服務(wù)終端用戶 23
2.2 NRT的高級(jí)系統(tǒng)視圖 25
2.3 NRT的技術(shù)視圖 26
2.3.1 事件生產(chǎn)者 27
2.3.2 數(shù)據(jù)收集 27
2.3.3 代理 29
2.3.4 轉(zhuǎn)換和處理 31
2.3.5 存儲(chǔ) 32
2.4 小結(jié) 32
第二部分 搭建基礎(chǔ)設(shè)施
第3章 了解和跟蹤數(shù)據(jù)流 34
3.1 了解數(shù)據(jù)流 34
3.2 為數(shù)據(jù)提取安裝基礎(chǔ)設(shè)施 35
3.2.1 Apache Kafka 35
3.2.2 Apache NiFi 36
3.2.3 Logstash 41
3.2.4 Fluentd 43
3.2.5 Flume 46
3.3 將數(shù)據(jù)從源填到處理器—期望和注意事項(xiàng) 48
3.4 比較與選擇適合用例的最佳實(shí)踐 49
3.5 小試牛刀 49
3.6 小結(jié) 51
第4章 安裝和配置Storm 52
4.1 Storm概述 52
4.2 Storm架構(gòu)和組件 53
4.2.1 特征 54
4.2.2 組件 54
4.2.3 流分組 56
4.3 安裝和配置Storm 57
4.3.1 安裝Zookeeper 57
4.3.2 配置Apache Storm 59
4.4 在Storm上實(shí)時(shí)處理任務(wù) 61
4.5 小結(jié) 67
第5章 配置Apache Spark和Flink 68
5.1 安裝并快速運(yùn)行Spark 68
5.1.1 源碼構(gòu)建 69
5.1.2 下載Spark安裝包 69
5.1.3 運(yùn)行示例 70
5.2 安裝并快速運(yùn)行Flink 73
5.2.1 使用源碼構(gòu)建Flink 73
5.2.2 下載Flink 74
5.2.3 運(yùn)行示例 75
5.3 安裝并快速運(yùn)行Apache Beam 79
5.3.1 Beam模型 79
5.3.2 運(yùn)行示例 80
5.3.3 MinimalWordCount示例 82
5.4 Apache Beam中的平衡 85
5.5 小結(jié) 88
第三部分 Storm實(shí)時(shí)計(jì)算
第6章 集成Storm與數(shù)據(jù)源 90
6.1 RabbitMQ有效的消息傳遞 90
6.2 RabbitMQ交換器 91
6.2.1 直接交換器 91
6.2.2 RabbitMQ安裝配置 93
6.2.3 RabbitMQ的發(fā)布和訂閱 95
6.3 RabbitMQ與Storm集成 99
6.4 PubNub數(shù)據(jù)流發(fā)布者 107
6.5 將Storm和RMQ_PubNub傳感器數(shù)據(jù)拓?fù)浯谝黄稹?11
6.6 小結(jié) 114
第7章 從Storm到Sink 115
7.1 安裝并配置Cassandra 115
7.1.1 安裝Cassandra 116
7.1.2 配置Cassandra 117
7.2 Storm和Cassandra拓?fù)洹?18
7.3 Storm和IMDB集成處理維度數(shù)據(jù) 120
7.4 集成表示層與Storm 122
7.5 小試牛刀 134
7.6 小結(jié) 143
第8章 Storm Trident 144
8.1 狀態(tài)保持和Trident 144
8.1.1 事務(wù)性spout 145
8.1.2 不透明事務(wù)性spout 145
8.2 基本Storm Trident拓?fù)洹?46
8.3 Trident內(nèi)部實(shí)現(xiàn) 148
8.4 Trident操作 149
8.4.1 函數(shù) 149
8.4.2 Map函數(shù)and FlatMap函數(shù) 150
8.4.3 peek函數(shù) 151
8.4.4 過(guò)濾器 151
8.4.5 窗口操作 152
8.4.6 聚合操作 155
8.4.7 分組操作 158
8.4.8 合并和組合操作 159
8.5 DRPC 160
8.6 小試牛刀 161
8.7 小結(jié) 164
第四部分 使用Spark實(shí)現(xiàn)實(shí)時(shí)計(jì)算
第9章 運(yùn)用Spark引擎 166
9.1 Spark概述 166
9.2 Spark的獨(dú)特優(yōu)勢(shì) 169
9.3 Spark用例 172
9.4 Spark架構(gòu)—引擎內(nèi)部的運(yùn)行模式 174
9.5 Spark的語(yǔ)用概念 176
9.6 Spark 2.x—數(shù)據(jù)框和數(shù)據(jù)集的出現(xiàn) 178
9.7 小結(jié) 179
第 10章 運(yùn)用Spark操作 180
10.1 Spark—封裝和API 180
10.2 RDD語(yǔ)用探索 182
10.2.1 轉(zhuǎn)換 185
10.2.2 動(dòng)作 190
10.3 共享變量—廣播變量和累加器 192
10.3.1 廣播變量 192
10.3.2 累加器 195
10.4 小結(jié) 196
第 11章 Spark Streaming 197
11.1 Spark Streaming的概念 197
11.2 Spark Streaming的簡(jiǎn)介和體系結(jié)構(gòu) 198
11.3 Spark Streaming的封裝結(jié)構(gòu) 203
11.3.1 Spark Streaming API 203
11.3.2 Spark Streaming操作 204
11.4 連接Kafka和Spark Streaming 206
11.5 小結(jié) 208
第五部分 使用Flink實(shí)現(xiàn)實(shí)時(shí)分析
第 12章 運(yùn)用Apache Flink 210
12.1 Flink體系結(jié)構(gòu)和執(zhí)行引擎 210
12.2 Flink的基本組件和進(jìn)程 213
12.3 將源流集成到Flink 215
12.3.1 和Apache Kafka集成 215
12.3.2 和RabbitMQ集成 218
12.4 Flink處理和計(jì)算 221
12.4.1 Datastream API 221
12.4.2 DataSet API 223
12.5 Flink持久化 224
12.6 FlinkCEP 226
12.7 Pattern API 227
12.7.1 檢測(cè)模式 227
12.7.2 模式選擇 228
12.7.3 示例 228
12.8 Gelly 229
12.9 小試牛刀 231
12.10 小結(jié) 242
第六部分 綜合應(yīng)用
第 13章 用例研究 244
13.1 概述 244
13.2 數(shù)據(jù)建!245
13.3 工具和框架 246
13.4 建立基礎(chǔ)設(shè)施 247
13.5 實(shí)現(xiàn)用例 252
13.5.1 構(gòu)建數(shù)據(jù)模擬器 252
13.5.2 Hazelcast加載器 259
13.5.3 構(gòu)建Storm拓?fù)洹?61
13.6 運(yùn)行用例 272
13.7 小結(jié) 279