大數據開發-Flink-1.13新特性
- 2021 年 5 月 23 日
- 筆記
介紹
大概4月,Flink1.13就發布了,參加 了Flink1.13 的Meetup,收穫還是挺多,從大的方面講就是FlingSql的改進和優化,資源調度管理方面的優化,以及流批一體Flink在運行時與DataStream API的優化,另外就是State backend 模組的優化,本篇文章既是當時做的筆記,又是在後續查閱官網等做的補充,
Flink 的一個主要目標取得了重要進展,即讓流處理應用的使用像普通應用一樣簡單和自然。Flink 1.13 新引入的被動擴縮容使得流作業的擴縮容和其它應用一樣簡單,使用者僅需要修改並行度即可。
這個版本還包括一系列重要改動使使用者可以更好理解流作業的效能。當流作業的效能不及預期的時候,這些改動可以使使用者可以更好的分析原因。這些改動包括用於識別瓶頸節點的負載和反壓視覺化、分析運算元熱點程式碼的 CPU 火焰圖和分析 State Backend 狀態的 State 存取效能指標
深入解讀 Flink SQL 1.13
在剛剛發布的 1.13 版本中,Flink SQL 帶來了許多新 feature 和功能提升,在這裡圍繞 Winddow TVF,時區支援,DataStream & Table API 交互,hive 兼容性提升,SQL Client 改進 五個方面
-
flip-145 window tvf
-
完整關係代數表達
-
輸入是一個關係,輸出是一個關係
-
每個關係對應一個數據集
-
cumulater window eg: 每10分鐘一次統計uv,,結果準確,不會有跳變
-
window 性能優化
-
記憶體,切片,運算元,遲到數據
-
benchmark 測試 2x提升
-
-
多維數據分析:grouping sets ,rollup,cube等
-
-
flip-162時區分析
-
時區問題:proctime未考慮時區,timestamp 也沒有時區,各種current_time,now未考慮時區
-
時間函數:current_timestamp 返回utc+0
-
支援 tiestamp——ltz類型 timestamp vs timestamp_ltz
-
糾正proctime()函數
-
夏令時支援-同timestamp_ltz
-
-
flip-163 改進sql-client,hive兼容性
-
支援更多實用配置
-
支援statement set
-
-
flip-136 增強datastrem 和 table的轉換
-
支援ds 和table轉換時傳遞 event time 和 watermark
-
支援changelog數據流在table和datastream間相互轉換
-
Flink 1.13: Towards Scalable Cloud Native Application
Flink 1.13 新增了被動資源管理模式與自適應調度模式,具備靈活的伸縮能力,與雲原生的自動伸縮技術相結合,能夠更好地發揮雲環境下彈性計算資源的優勢,是 Flink 全面擁抱雲原生技術生態的又一重要里程碑。本次議題將對 Flink 1.13 中的被動資源管理、自適應調度、自定義容器模板等新特性,我覺得這個的擴展才是Flink此次版本特別重要的一個feature
-
雲原生 時代 flink,k8s,聲明api,可彈性擴展
-
k8s高可用-(zk,k8s可選)
-
Rescale (reactive mode → adaptive mdoe → autoscaling mode(TBD,還未支援))//ci.apache.org/projects/flink/flink-docs-release-1.13/docs/deployment/elastic_scaling/
-
Flip-158 generalized incremental checkpoints 讓checkpoint更短時間
-
Pod Template 自定義Pod模板支援
-
Fine-細粒度資源管理-featrue 大概1.14支援
-
縱向擴展資源和橫向擴展資源,tm cpu → k8s, mem→no
面向流批一體的 Flink 運行時與 DataStream API 優化
在 1.13 中,針對流批一體的目標,Flink 優化了大規模作業調度以及批執行模式下網路 Shuffle 的性能,從而進一步提高了流作業與批作業的執行性能;同時,在 DataStream API 方面,Flink也正在完善有限流作業的退出語義,從而進一步提高不同執行模式下語義與結果的一致性
api下面的shuffle架構實現
-
有限作業和無限作業,和預期結果一致
-
大規模作業優化 consumerVetexGroup partitionGroup
-
有限流作業結束一致性,2pc😁😁
-
流批-數據迴流
-
piplien and block-快取主要是,離線處理
State backend Flink-1.13 優化及生產實踐
-
統一savepoint 可以 切換rocksdb
-
state-backend 記憶體管控,
-
checkpoint save point //zhuanlan.zhihu.com/p/79526638
-
更快速的checkpoint & falover
flink1.14 的展望
-
刪除legacy planner
-
完善window tvf
-
提升 schema handing
-
增強cdc
參考
更多可以查看Flink官網 //ci.apache.org/projects/flink/flink-docs-release-1.13/release-notes/flink-1.13/
參考部分://tw511.com/a/01/34869.html
吳邪,小三爺,混跡於後台,大數據,人工智慧領域的小菜鳥。
更多請關注