大資料開發-Flink-1.13新特性

Hoult丶吳邪發表於2021-05-22

介紹

大概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,還未支援))https://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 優化及生產實踐

flink1.14 的展望

  • 刪除legacy planner

  • 完善window tvf

  • 提升 schema handing

  • 增強cdc

參考

更多可以檢視Flink官網 https://ci.apache.org/projects/flink/flink-docs-release-1.13/release-notes/flink-1.13/

參考部分:https://tw511.com/a/01/34869.html
吳邪,小三爺,混跡於後臺,大資料,人工智慧領域的小菜鳥。
更多請關注
file

相關文章