注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)家庭與辦公軟件Flink原理與實(shí)踐

Flink原理與實(shí)踐

Flink原理與實(shí)踐

定 價(jià):¥69.80

作 者: 魯蔚征 著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787115546159 出版時(shí)間: 2021-02-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 301 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)圍繞大數(shù)據(jù)流處理領(lǐng)域,介紹Flink DataStream API、時(shí)間和窗口、狀態(tài)和檢查點(diǎn)、Table API和SQL等知識(shí)。本書(shū)以實(shí)踐為導(dǎo)向,使用大量真實(shí)業(yè)務(wù)場(chǎng)景案例來(lái)演示如何基于Flink進(jìn)行流處理。 本書(shū)主要面向?qū)Υ髷?shù)據(jù)領(lǐng)域感興趣的本科生、研究生,想轉(zhuǎn)行到大數(shù)據(jù)開(kāi)發(fā)行業(yè)的在職人員,或有一定大數(shù)據(jù)開(kāi)發(fā)經(jīng)驗(yàn)的相關(guān)從業(yè)人員。讀者最好有一定的Java或Scala編程基礎(chǔ),掌握計(jì)算機(jī)領(lǐng)域的常見(jiàn)技術(shù)概念。

作者簡(jiǎn)介

  魯蔚征 前小米工程師,現(xiàn)中國(guó)人民大學(xué)教師,一直從事大數(shù)據(jù)相關(guān)的開(kāi)發(fā)和研究工作,關(guān)注大數(shù)據(jù)行業(yè)的發(fā)展,先后接觸了Hadoop、Hive、Kafka、Spark、TensorFlow等大數(shù)據(jù)中間件,在大數(shù)據(jù)的流處理和批處理方向上有一定的實(shí)際工作經(jīng)驗(yàn)。主要研究項(xiàng)目及領(lǐng)域?yàn)橥扑]系統(tǒng)、大數(shù)據(jù)。今日頭條科技領(lǐng)域優(yōu)質(zhì)創(chuàng)作者。

圖書(shū)目錄

第 1章 大數(shù)據(jù)技術(shù)概述 ................ 1
1.1 什么是大數(shù)據(jù) ................................. 2
1.1.1 大數(shù)據(jù)的5個(gè)“V” ....................... 2
1.1.2 大數(shù)據(jù)分而治之 ............................... 3
1.2 從批處理到流處理 .......................... 6
1.2.1 數(shù)據(jù)與數(shù)據(jù)流 ................................... 6
1.2.2 批處理與流處理 ............................... 7
1.2.3 為什么需要一個(gè)優(yōu)秀的
流處理框架 ........................................ 7
1.3 代表性大數(shù)據(jù)技術(shù) .......................... 9
1.3.1 Hadoop ............................................ 9
1.3.2 Spark ............................................... 10
1.3.3 Apache Kafka ............................... 11
1.3.4 Flink ................................................. 12
1.4 從Lambda到Kappa:
大數(shù)據(jù)處理平臺(tái)的演進(jìn) .................. 13
1.4.1 Lambda架構(gòu) ................................ 14
1.4.2 Kappa架構(gòu) .................................... 15
1.5 流處理基礎(chǔ)概念 ........................... 16
1.5.1 延遲和吞吐 ..................................... 16
1.5.2 窗口與時(shí)間 ..................................... 17
1.5.3 狀態(tài)與檢查點(diǎn) ................................. 20
1.5.4 數(shù)據(jù)一致性保障 ............................. 21
1.6 編程語(yǔ)言的選擇 ........................... 21
1.6.1 Java和Scala ................................. 21
1.6.2 Python ............................................ 22
1.6.3 SQL .................................................. 23
1.7 案例實(shí)戰(zhàn) 使用Kafka構(gòu)建
文本數(shù)據(jù)流 .................................. 23
1.7.1 Kafka和消息隊(duì)列相關(guān)
背景知識(shí) ..........................................23
1.7.2 使用Kafka構(gòu)建一個(gè)
文本數(shù)據(jù)流 ......................................24
本章小結(jié) ............................................. 26
第 2章 大數(shù)據(jù)編程知識(shí) ...... 27
2.1 繼承和多態(tài) .................................. 28
2.1.1 繼承、類和接口 .............................28
2.1.2 重寫(xiě)與重載 .....................................30
2.1.3 繼承和多態(tài)小結(jié) .............................32
2.2 泛型 ............................................ 32
2.2.1 Java中的泛型 ................................32
2.2.2 Scala中的泛型 ..............................35
2.2.3 泛型小結(jié) .........................................36
2.3 函數(shù)式編程 .................................. 36
2.3.1 函數(shù)式編程思想簡(jiǎn)介 .....................36
2.3.2 Lambda表達(dá)式的內(nèi)部結(jié)構(gòu) ........37
2.3.3 函數(shù)式接口 .....................................38
2.3.4 Java Stream API ...........................40
2.3.5 函數(shù)式編程小結(jié) .............................41
2.4 案例實(shí)戰(zhàn) Flink開(kāi)發(fā)環(huán)境搭建 ........ 42
2.4.1 準(zhǔn)備所需軟件 .................................42
2.4.2 下載并安裝Flink ...........................43
2.4.3 創(chuàng)建Flink工程 ..............................43
2.4.4 調(diào)試和運(yùn)行Flink程序 ..................48
2.4.5 運(yùn)行程序 .........................................50
Flink原理與實(shí)踐
本章小結(jié) ............................................. 53
第3章 Flink的設(shè)計(jì)與
運(yùn)行原理 ........................... 54
3.1 Flink數(shù)據(jù)流圖簡(jiǎn)介 ....................... 55
3.1.1 Flink程序和數(shù)據(jù)流圖 .................. 55
3.1.2 從邏輯視圖轉(zhuǎn)化為物理執(zhí)行圖 .... 57
3.1.3 數(shù)據(jù)交換策略 ................................. 58
3.2 Flink分布式架構(gòu)與核心組件 .......... 59
3.2.1 Flink作業(yè)提交過(guò)程....................... 59
3.2.2 Flink核心組件 ............................... 60
3.2.3 Flink組件棧 ................................... 61
3.3 任務(wù)執(zhí)行與資源劃分 ..................... 63
3.3.1 再談邏輯視圖到物理執(zhí)行圖 ........ 63
3.3.2 任務(wù)、算子子任務(wù)與算子鏈 ........ 64
3.3.3 Slot與計(jì)算資源 ............................ 65
3.4 實(shí)驗(yàn)WordCount程序
迭代和完善 .................................. 67
一、實(shí)驗(yàn)?zāi)康摹?............................................. 67
二、實(shí)驗(yàn)內(nèi)容 .............................................. 67
三、實(shí)驗(yàn)要求 .............................................. 68
四、實(shí)驗(yàn)報(bào)告 .............................................. 68
本章小結(jié) ............................................. 68
第4章 DataStream API的
介紹和使用 ....................... 70
4.1 Flink程序的骨架結(jié)構(gòu) ................... 71
4.1.1 設(shè)置執(zhí)行環(huán)境 ................................. 71
4.1.2 讀取數(shù)據(jù)源 ..................................... 72
4.1.3 進(jìn)行轉(zhuǎn)換操作 ................................. 72
4.1.4 結(jié)果輸出 ......................................... 73
4.1.5 執(zhí)行 ..................................................73
4.2 常見(jiàn)Transformation的
使用方法 ..................................... 73
4.2.1 單數(shù)據(jù)流基本轉(zhuǎn)換 .........................74
4.2.2 基于Key的分組轉(zhuǎn)換 ....................78
4.2.3 多數(shù)據(jù)流轉(zhuǎn)換 .................................84
4.2.4 并行度與數(shù)據(jù)重分布 .....................86
4.3 數(shù)據(jù)類型和序列化 ........................ 92
4.3.1 Flink支持的數(shù)據(jù)類型 ...................92
4.3.2 TypeInformation .........................96
4.3.3 注冊(cè)類 ..............................................98
4.3.4 Avro、Kryo、Thrift和
Protobuf .........................................99
4.3.5 數(shù)據(jù)類型的選擇 .......................... 103
4.4 用戶自定義函數(shù) .......................... 104
4.4.1 接口 ............................................... 104
4.4.2 Lambda表達(dá)式 .......................... 105
4.4.3 Rich函數(shù)類 ................................. 108
4.5 實(shí)驗(yàn) 股票價(jià)格數(shù)據(jù)流處理 ........... 109
一、實(shí)驗(yàn)?zāi)康摹?........................................... 109
二、實(shí)驗(yàn)內(nèi)容 ............................................ 110
三、實(shí)驗(yàn)要求 ............................................ 111
四、實(shí)驗(yàn)報(bào)告 ............................................ 112
本章小結(jié) ........................................... 112
第5章 時(shí)間和窗口 .................... 113
5.1 Flink的時(shí)間語(yǔ)義 ........................ 114
5.1.1 Flink的3種時(shí)間語(yǔ)義 ............... 114
5.1.2 設(shè)置時(shí)間語(yǔ)義 .............................. 115
5.1.3 Event Time和Watermark ..... 116
5.1.4 分布式環(huán)境下Watermark的
傳播 ................................................ 116
5.1.5 設(shè)置時(shí)間戳及生成
Watermark .................................. 118
5.1.6 平衡延遲和準(zhǔn)確性 ..................... 123
5.2 ProcessFunction系列函數(shù) ........ 123
5.2.1 Timer的使用方法 ...................... 123
5.2.2 側(cè)輸出 .......................................... 126
5.2.3 在兩個(gè)數(shù)據(jù)流上使用
ProcessFunction ....................... 127
5.3 窗口算子的使用 .......................... 129
5.3.1 窗口程序的骨架結(jié)構(gòu) ................. 129
5.3.2 內(nèi)置的3種窗口劃分方法 ......... 131
5.3.3 窗口處理函數(shù) .............................. 135
5.3.4 拓展和自定義窗口 ..................... 141
5.4 雙流連接 ................................... 146
5.4.1 Window Join ............................. 146
5.4.2 Interval Join ............................... 149
5.5 處理遲到數(shù)據(jù) ............................. 150
5.5.1 將遲到數(shù)據(jù)發(fā)送到另外一個(gè)
數(shù)據(jù)流 ........................................... 151
5.5.2 更新計(jì)算結(jié)果 .............................. 151
5.6 實(shí)驗(yàn) 股票價(jià)格數(shù)據(jù)進(jìn)階分析 ........ 153
一、實(shí)驗(yàn)?zāi)康摹?.......................................... 153
二、實(shí)驗(yàn)內(nèi)容 ........................................... 153
三、實(shí)驗(yàn)要求 ........................................... 154
四、實(shí)驗(yàn)報(bào)告 ........................................... 154
本章小結(jié) ........................................... 154
第6章 狀態(tài)和檢查點(diǎn) ................ 155
6.1 實(shí)現(xiàn)有狀態(tài)的計(jì)算 ...................... 156
6.1.1 為什么要管理狀態(tài) ..................... 156
6.1.2 Flink中幾種常用的狀態(tài) ........... 157
6.1.3 橫向擴(kuò)展問(wèn)題 .............................. 159
6.1.4 Keyed State的使用方法 .......... 160
6.1.5 Operator List State的
使用方法 ....................................... 165
6.1.6 BroadcastState的使用方法 .... 169
6.2 Checkpoint機(jī)制的原理及
配置方法 ................................... 173
6.2.1 Flink分布式快照流程 ................ 173
6.2.2 分布式快照性能優(yōu)化方案 ......... 177
6.2.3 State Backend ........................... 177
6.2.4 Checkpoint相關(guān)配置 ............... 179
6.2.5 重啟恢復(fù)流程 .............................. 180
6.3 Savepoint機(jī)制的原理及
使用方法 ................................... 182
6.3.1 Savepoint機(jī)制與Checkpoint
機(jī)制的區(qū)別 ................................... 182
6.3.2 Savepoint的使用方法 ............. 183
6.3.3 讀/寫(xiě)Savepoint中的數(shù)據(jù) ...... 184
6.3.4 Queryable State和
State Processor API ................... 194
6.4 實(shí)驗(yàn) 電商平臺(tái)用戶行為分析 ........ 195
一、實(shí)驗(yàn)?zāi)康摹?........................................... 195
二、實(shí)驗(yàn)內(nèi)容 ............................................ 195
三、實(shí)驗(yàn)要求 ............................................ 195
四、實(shí)驗(yàn)報(bào)告 ............................................ 195
本章小結(jié) ........................................... 195
第7章 Flink連接器 ................ 196
7.1 Flink端到端的
Exactly-Once保障 ................... 197
7.1.1 故障恢復(fù)與一致性保障 ............. 197
7.1.2 冪等寫(xiě) ........................................... 198
7.1.3 事務(wù)寫(xiě) ........................................... 199
7.2 自定義Source和Sink ............... 200
7.2.1 Flink 1.11之前的Source ........ 200
7.2.2 Flink 1.11之后的Source ........ 205
Flink原理與實(shí)踐
7.2.3 自定義Sink ................................. 205
7.3 Flink中常用的Connector .......... 211
7.3.1 內(nèi)置I/O接口 .............................. 212
7.3.2 Flink Kafka Connector ........... 217
7.4 實(shí)驗(yàn) 讀取并輸出股票價(jià)格
數(shù)據(jù)流 ...................................... 220
一、實(shí)驗(yàn)?zāi)康摹?.......................................... 220
二、實(shí)驗(yàn)內(nèi)容 ........................................... 220
三、實(shí)驗(yàn)要求 ........................................... 220
四、實(shí)驗(yàn)報(bào)告 ........................................... 221
本章小結(jié) ........................................... 221
第8章 Table API & SQL的
介紹和使用 ..................... 222
8.1 Table API & SQL綜述 .............. 223
8.1.1 Table API & SQL程序的
骨架結(jié)構(gòu) ....................................... 223
8.1.2 創(chuàng)建TableEnvironment .......... 224
8.1.3 獲取表 .......................................... 227
8.1.4 在表上執(zhí)行語(yǔ)句 .......................... 228
8.1.5 將表結(jié)果輸出 .............................. 229
8.1.6 執(zhí)行作業(yè) ...................................... 229
8.1.7 獲取表的具體方式 ..................... 231
8.2 動(dòng)態(tài)表和持續(xù)查詢 ...................... 233
8.2.1 動(dòng)態(tài)表和持續(xù)查詢 ..................... 233
8.2.2 流處理的限制 .............................. 237
8.2.3 狀態(tài)過(guò)期時(shí)間 .............................. 238
8.3 時(shí)間和窗口 ................................ 238
8.3.1 時(shí)間屬性 ...................................... 238
8.3.2 窗口聚合 ...................................... 241
8.4 Join .......................................... 249
8.4.1 時(shí)間窗口 Join ............................ 250
8.4.2 臨時(shí)表 Join ................................ 251
8.4.3 傳統(tǒng)意義上的Join ..................... 254
8.5 SQL DDL ................................. 256
8.5.1 注冊(cè)和獲取表 .............................. 256
8.5.2 USE和SHOW語(yǔ)句 .................. 258
8.5.3 CREATE、DROP、
ALTER語(yǔ)句 .................................. 259
8.5.4 INSERT語(yǔ)句 ............................... 262
8.6 系統(tǒng)內(nèi)置函數(shù) ............................. 263
8.6.1 標(biāo)量函數(shù) ...................................... 264
8.6.2 聚合函數(shù) ...................................... 269
8.6.3 時(shí)間單位 ...................................... 269
8.7 用戶自定義函數(shù) .......................... 270
8.7.1 注冊(cè)函數(shù) ...................................... 270
8.7.2 標(biāo)量函數(shù) ...................................... 270
8.7.3 表函數(shù) ........................................... 272
8.7.4 聚合函數(shù) ...................................... 274
8.8 實(shí)驗(yàn) 使用Flink SQL處理
IoT數(shù)據(jù) .................................... 277
一、實(shí)驗(yàn)?zāi)康摹?........................................... 277
二、實(shí)驗(yàn)內(nèi)容 ............................................ 277
三、實(shí)驗(yàn)要求 ............................................ 278
四、實(shí)驗(yàn)報(bào)告 ............................................ 279
本章小結(jié) ........................................... 279
第9章 Flink的部署和配置 .... 280
9.1 Flink集群部署模式 ..................... 281
9.1.1 Standalone集群 ....................... 281
9.1.2 Hadoop YARN集群 ................. 282
9.1.3 Kubernetes集群 ....................... 285
9.2 配置文件 ................................... 287
9.2.1 Java和類加載 ............................. 288
9.2.2 并行度與槽位劃分 ...................... 289
9.2.3 內(nèi)存 .............................................. 290
9.2.4 磁盤(pán) .............................................. 294
9.3 算子鏈與槽位共享 ...................... 294
9.3.1 設(shè)置算子鏈 .................................. 294
9.3.2 設(shè)置槽位共享 .............................. 295
9.4 命令行工具 ................................ 296
9.4.1 提交作業(yè) ...................................... 297
9.4.2 管理作業(yè) ...................................... 298
9.5 與Hadoop集成 ........................ 299
9.5.1 添加Hadoop Classpath ......... 299
9.5.2 將Hadoop依賴包添加到
9.5.3 本地調(diào)試 ...................................... 300
9.6 實(shí)驗(yàn) 作業(yè)編碼、打包與提交 ........ 301
一、實(shí)驗(yàn)?zāi)康摹?........................................... 301
二、實(shí)驗(yàn)內(nèi)容 ............................................ 301
三、實(shí)驗(yàn)要求 ............................................ 301
四、實(shí)驗(yàn)報(bào)告 ............................................ 301
本章小結(jié) ........................................... 301
參考文獻(xiàn) ......................................... 302

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)