總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 自動化技術及設備
 
 
 
 
Flink原理•實戰與性能優化(附線上配套資源)
 叢書名稱: 大數據技術叢書
 作  者: 張利兵
 出版單位: 機械工業
 出版日期: 2019.06
 進貨日期: 2019/7/17
 ISBN: 9787111623533
 開  本: 16 開    
 定  價: 593
 售  價: 474
  會 員 價: 435
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

(1)作者是資深的流式計算領域專家,是流式計算和Flink領域的先行者和佈道者,已經利用Flink在銀行、證券和鐵路領域的頭部企業做了大量的專案實踐。

(2)作者是經驗豐富的架構師,曾經是明略資料的大資料架構師,現為第四範式的AI項目架構師。

(3)從功能、原理、實戰和調優4個維度循序漸進講解利用Flink進行分散式流式應用開發,指導讀者從零基礎入門到進階。

(4)本書得到了第四範式的首席架構師胡時偉、明略科技集團技術VP楊威、國盛金控/極盛科技大資料總監羅志鵬等專家的強烈推薦。


內容簡介:

這是一部以實戰為導向,能指導讀者零基礎掌握Flink並快速完成進階的著作,從功能、原理、實戰和調優等4個維度循序漸進地講解了如何利用Flink進行分散式流式應用開發。作者是該領域的資深專家,現就職于第四范式,曾就職於明略資料。

全書一共10章,邏輯上可以分為三個部分:

第一部分(第1~2章)

主要介紹了Flink的核心概念、特性、應用場景、基本架構,開發環境的搭建和配置,以及原始程式碼的編譯。

第二部分(第3~9章)

詳細講解了Flink的程式設計範式,各種程式設計介面的功能、應用場景和使用方法,以及核心模組和元件的原理和使用。

第三部分(第10章)

重點講解了Flink的監控和優化,參數調優,以及對反壓、Checkpoint和記憶體的優化。


作者簡介:

張利兵


資深架構師,流式計算領域專家,第四范式華東區AI專案架構師,原明略資料華東區大資料架構師。

有多年大資料、流式計算方面的開發經驗,對Hadoop、Spark、Flink等大資料計算引擎有著非常深入的理解,積累了豐富的專案實踐經驗。先後利用相關技術為銀行、證券、地鐵等領域的頭部企業構建了內部大資料平臺,參與了基於Flink的即時反欺詐風控、即時地鐵故障預警等流式計算平臺的設計和研發。


圖書目錄:

前言

第1章 Apache Flink介紹 1

1.1 Apache Flink是什麼 1

1.2 資料架構的演變 2

1.2.1 傳統資料基礎架構 3

1.2.2 大資料資料架構 4

1.2.3 有狀態流計算架構 5

1.2.4 為什麼會是Flink 6

1.3 Flink應用場景 8

1.4 Flink基本架構 10

1.4.1 基本組件棧 10

1.4.2 基本架構圖 11

1.5 本章小結 13

第2章 環境準備 14

2.1 運行環境介紹 14

2.2 Flink專案範本 15

2.2.1 基於Java實現的專案範本 15

2.2.2 基於Scala實現的專案範本 18

2.3 Flink開發環境配置 20

2.3.1 下載IntelliJ IDEA IDE 21

2.3.2 安裝Scala Plugins 21

2.3.3 導入Flink應用代碼 22

2.3.4 專案配置 22

2.4 運行Scala REPL 24

2.4.1 環境支援 24

2.4.2 運行程式 24

2.5 Flink源碼編譯 25

2.6 本章小結 26

第3章 Flink程式設計模型 27

3.1 資料集類型 27

3.2 Flink程式設計介面 29

3.3 Flink程式結構 30

3.4 Flink資料類型 37

3.4.1 資料類型支援 37

3.4.2 TypeInformation資訊獲取 40

3.5 本章小結 43

第4章 DataStream API 介紹與使用 44

4.1 DataStream程式設計模型 44

4.1.1 DataSources資料登錄 45

4.1.2 DataSteam轉換操作 49

4.1.3 DataSinks資料輸出 59

4.2 時間概念與Watermark 61

4.2.1 時間概念類型 61

4.2.2 EventTime和Watermark 63

4.3 Windows窗口計算 69

4.3.1 Windows Assigner 70

4.3.2 Windows Function 77

4.3.3 Trigger視窗觸發器 83

4.3.4 Evictors資料剔除器 87

4.3.5 延遲資料處理 88

4.3.6 連續窗口計算 89

4.3.7 Windows多流合併 90

4.4 作業鏈和資源組 95

4.4.1 作業鏈 95

4.4.2 Slots資源組 96

4.5 Asynchronous I/O非同步作業 97

4.6 本章小結 98

第5章 Flink狀態管理和容錯 100

5.1 有狀態計算 100

5.2 Checkpoints和Savepoints 109

5.2.1 Checkpoints檢查點機制 109

5.2.2 Savepoints機制 111

5.3 狀態管理器 114

5.3.1 StateBackend類別 114

5.3.2 狀態管理器配置 116

5.4 Querable State 118

5.5 本章小結 123

第6章 DataSet API介紹與使用 124

6.1 DataSet API 124

6.1.1 應用實例 125

6.1.2 DataSources資料接入 126

6.1.3 DataSet轉換操作 128

6.1.4 DataSinks資料輸出 134

6.2 反覆運算計算 136

6.2.1 全量迭代 136

6.2.2 增量反覆運算 137

6.3 廣播變數與分散式緩存 139

6.3.1 廣播變數 139

6.3.2 分散式緩存 140

6.4 語義注解 141

6.4.1 Forwarded Fileds注解 141

6.4.2 Non-Forwarded Fileds注解 143

6.4.3 Read Fields注解 144

6.5 本章小結 145

第7章 Table API & SQL介紹與使用 146

7.1 TableEnviroment概念 146

7.1.1 開發環境構建 147

7.1.2 TableEnvironment基本操作 147

7.1.3 外部連接器 155

7.1.4 時間概念 162

7.1.5 Temporal Tables臨時表 166

7.2 Flink Table API 167

7.2.1 Table API應用實例 167

7.2.2 資料查詢和過濾 168

7.2.3 視窗操作 168

7.2.4 聚合操作 173

7.2.5 多表關聯 175

7.2.6 集合操作 177

7.2.7 排序操作 178

7.2.8 資料寫入 179

7.3 Flink SQL使用 179

7.3.1 Flink SQL實例 179

7.3.2 執行SQL 180

7.3.3 資料查詢與過濾 181

7.3.4 Group Windows視窗操作 182

7.3.5 資料聚合 184

7.3.6 多表關聯 186

7.3.7 集合操作 187

7.3.8 資料輸出 189

7.4 自訂函數 189

7.4.1 Scalar Function 189

7.4.2 Table Function 191

7.4.3 Aggregation Function 192

7.5 自訂資料來源 193

7.5.1 TableSource定義 193

7.5.2 TableSink定義 196

7.5.3 TableFactory定義 199

7.6 本章小結 201

第8章 Flink元件棧介紹與使用 202

8.1 Flink複雜事件處理 202

8.1.1 基礎概念 203

8.1.2 Pattern API 204

8.1.3 事件獲取210

8.1.4 應用實例 212

8.2 Flink Gelly圖計算應用 213

8.2.1 基本概念 213

8.2.2 Graph API 214

8.2.3 反覆運算圖處理 220

8.2.4 圖生成器 226

8.3 FlinkML機器學習應用 227

8.3.1 基本概念 227

8.3.2 有監督學習運算元 229

8.3.3 資料預處理 231

8.3.4 推薦演算法 234

8.3.5 Pipelines In FlinkML 235

8.4 本章小結 236

第9章 Flink部署與應用 237

9.1 Flink集群部署 237

9.1.1 Standalone Cluster部署 238

9.1.2 Yarn Cluster部署 240

9.1.3 Kubernetes Cluster部署 244

9.2 Flink高可用配置 247

9.2.1 Standalone集群高可用配置 248

9.2.2 Yarn Session集群高可用配置 250

9.3 Flink安全管理 251

9.3.1 認證目標 251

9.3.2 認證配置 252

9.3.3 SSL配置 253

9.4 Flink集群升級 255

9.4.1 任務重啟 256

9.4.2 狀態維護 256

9.4.3 版本升級 257

9.5 本章小結 258

第10章 Flink監控與性能優化 259

10.1 監控指標 259

10.1.1 系統監控指標 259

10.1.2 監控指標註冊 261

10.1.3 監控指標報表 264

10.2 Backpressure監控與優化 266

10.2.1 Backpressure進程抽樣 266

10.2.2 Backpressure頁面監控 267

10.2.3 Backpressure配置 268

10.3 Checkpointing監控與優化 268

10.3.1 Checkpointing頁面監控 268

10.3.2 Checkpointing優化 271

10.4 Flink記憶體優化 273

10.4.1 Flink記憶體配置 274

10.4.2 Network Buffers配置 275

10.5 本章小結 277


章節試讀:

為什麼要寫這本書

記得在幾年前剛開始做流式計算相關的專案時,發覺專案對即時性和資料量的要求很高,無奈求助於Flink開源社區(後文簡稱“社區”),在社區中發現可以使用的流式框架有很多,例如比較主流的框架Apache Storm、Spark Streaming等,Apache Flink(簡稱“Flink”)也在其中。於是筆者開始對各種流式框架進行詳細研究,最後發現能同時支持低延遲、高吞吐、Excactly-once的框架只有Apache Flink,從那時起筆者就對Flink這套框架充滿興趣,不管是其架構還是介面,都可以發現其中包含了非常優秀的設計思想。雖然當時Flink在社區的成熟度並不是很高,但筆者還是決定將Flink應用在自己的項目中,自此開啟了Flink分散式運算技術應用之旅。

剛開始學習Flink,對於沒有分散式處理技術和流式計算經驗的人來說會相對比較困難,因為其很難理解有狀態計算、資料一致性保障等概念。尤其在相關中文資源比較匱乏的情況下,需要使用者在官網以及國外的技術網站中翻閱大量的外文資料,這在一定程度上對學習和應用Flink造成了阻礙。筆者在2018年參加了一場由Flink中文社區組織的線下交流活動,當時聽了很多領域內專家將Flink應用在不同業務場景中的分享,發現Flink這項技術雖然優秀,但是國內尚未有一本能夠全面介紹Flink的中文書籍,於是筆者決定結合自己的實際專案經驗來完成一本Flink中文書籍,以幫助他人學習和使用Flink這項優秀的分散式處理技術。

阿裡巴巴在2018年1月開源了其內部Flink的分支專案Blink,並推動社區將Blink中優秀的特性合併到Flink主幹版本中,一時間Flink在國內的發展被推向了高潮,成為很多公司想去嘗試使用的新技術。因此筆者相信未來會有更多的開發者參與到Flink社區中來,Flink也將在未來的大資料生態中佔據舉足輕重的位置。

讀者物件

本書從多個方面對Flink進行了深入介紹,包括原理、多種抽象介面的使用,以及Flink的性能監控與調優等方面,因此本書比較適合以下類型的讀者。

流計算開發工程師

大資料架構工程師

大資料開發工程師

資料採擷工程師

高校研究生以及高年級本科生

如何閱讀本書

本書共分為10章,各章節間具有一定的先後關係,對於剛入門的讀者,建議從第1章開始循序漸進地學習。

對於有一定經驗的讀者可以自行選擇章節開始學習。如果想使用Flink開發流式應用,則可以直接閱讀第4章、第5章,以及第7章之後的內容;如果想使用Flink開發批計算應用,則可以選擇閱讀第5章以及第7章之後的內容。

勘誤和支援

除封面署名外,參加本書編寫工作的還有:張再勝、尚越、程龍、姚遠等。由於筆者水準有限,編寫時間倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。由於Flink技術的參考資料相對較少,因此書中有些地方參考了Flink官方文檔,讀者也可以結合Flink官網來學習。書中的全部原始檔案可以從GitHub網站下載,位址為https://github.com/zhanglibing1990/learning-flink。同時筆者也會將相應的功能及時更新。如果你有更多寶貴的意見可以通過QQ群686656574或電子郵箱zhanglibing1990@126.com聯繫筆者,期待能夠得到你們的真摯回饋。

致謝

在本書的寫作過程中,得到了很多朋友及同事的幫助和支持,在此表示衷心感謝!

感謝我的女朋友,因為有你的支持,我才能堅持將本書順利完成,謝謝你一直陪伴在我的身邊,不斷鼓勵我前行。

感謝機械工業出版社華章公司的編輯楊福川和張錫鵬,在這半年多的時間中始終支持我的寫作,你們的鼓勵和?明引導我順利完成全部書稿。

謹以此書獻給我最親愛的家人,以及眾多熱愛Flink的朋友!

總結

本書最開始介紹Flink的發展歷史,然後對Flink批資料和流資料的不同處理介面進行介紹,再對Flink的部署與實施、性能優化等方面進行全面講解。經過系統完整地瞭解和學習Flink分散式處理技術之後,可以發現Flink有很多非常先進的概念,以及非常完善的介面設計,這些都能讓用戶更加有效地處理大資料,特別是流式資料處理。隨著大資料技術的不斷發展,Flink也在大資料的浪潮中奮勇前行。越來越多的用戶也參與到Flink社區的開發中,尤其是近年來隨著阿裡巴巴的推進,Blink的開源在一定程度上推動了Flink在國內大規模的落地。相信在不久的將來,Flink會逐漸成為國內乃至全球不可或缺的分散式處理引擎,筆者也相信Flink在流式資料處理領域會有新的突破,能夠改變目前大部分基於批次處理的模式,讓分散式資料處理變得更加高效,使得資料處理成本不斷降低。


張利兵  

2019年


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。