天天看點

FFA 2021 專場解讀 - Flink 核心技術

FFA 2021 專場解讀 - Flink 核心技術

GitHub 位址

https://github.com/apache/flink

歡迎大家給 Flink 點贊送 star~

12 月 4-5 日,北京國家會議中心,Flink Forward Asia 2021 重磅開啟,全球 40+ 多行業一線廠商,80+ 幹貨議題,帶來專屬于開發者的技術盛宴。

其中,核心技術專場,由 Apache Flink 核心貢獻者與來自阿裡巴巴、位元組跳動、快手、美團等一線技術專家解析 Flink 技術動向與應用實踐。

點選連結了解完整大會議程:

https://flink-forward.org.cn/
FFA 2021 專場解讀 - Flink 核心技術

Flink SQL 在快手的落地和擴充

張靜|快手實時計算團隊技術專家

張芒|快手實時計算團隊技術專家

為了降低使用者學習成本和運維成本,提高資料研發同學的開發效率,快手實時計算團隊在過去一年大力推廣 Flink SQL。在 2021 年春節,五一,奧運以及各類活動中,Flink SQL 新增任務占比高達 80%。

為了滿足各個業務方對功能和性能上的要求,團隊在 Flink SQL 子產品的功能上和性能上都做了很多擴充和實踐。每一項擴充都遵循 ANSI SQL 标準,大部分功能已經回饋到社群,其他功能也在梳理和準備中,我們希望所有的功能都可以回饋給社群。

本次分享重點介紹廣泛受到内部使用者認可的幾點擴充和優化,希望對大家有幫助和啟發。

Flink State-Backend Improvements and Evolution in 2021

李钰|阿裡巴巴資深技術專家,ASF Member,Apache Flink & HBase PMC

唐雲|阿裡巴巴技術專家,Apache Flink committer

介紹 Flink 開源社群 2021 年在 checkpoint / savepoint / state-backend 方面的新增功能和優化,包括:

  1. Savepoint 統一格式,支援 state backend 切換;
  2. Unaligned checkpoint 完善和優化,以及在生産作業下的實踐效果;
  3. State backend 使用者接口重構;
  4. State 通路延遲方面的監控增強和優化;
  5. RocksDB state backend 相關的優化,包括 RocksDB 版本更新、記憶體管控下性能相關的一系列優化;
  6. 未來規劃,包括 fast checkpoint設計,savepoint/checkpoint 概念統一等。

Powering HTAP at ByteDance with Apache Flink

劉洋|位元組跳動基礎架構工程師,Apache Flink Contributor

鄒丹|位元組跳動基礎架構工程師,Apache Flink Contributor

ByteHTAP 是位元組内部自研的 HTAP 系統,該系統選取 Flink 作為其 AP 計算引擎。本次分享将介紹 Flink 作為 OLAP 引擎遇到的挑戰以及相關優化。

  1. ByteHTAP 簡要介紹:
    • 為什麼位元組需要一個 HTAP 系統;
    • ByteHTAP 各元件架構;
    • 選擇 Flink SQL 作為 AP Engine 的原因;
  2. ByteHTAP AP Engine 詳細介紹;
  3. Flink OLAP 遇到的挑戰和優化工作:
    • 計算性能比對和優化實踐;
    • 可遷移性優化和收益;
    • 穩定性;
    • 排程性能;
  4. 正在進行的工作以及未來展望。

深入解析 Flink 細粒度資源管理

郭旸澤|阿裡巴巴進階開發工程師,Apache Flink Contributor

在 Flink 1.14 中,社群引入了一種新的細粒度的方式來管理資源,它使得使用者可以通過調整算子的資源開銷的方式來提高作業的資源效率。在本篇演講中,我們将通過一個具體的任務執行個體,闡述該特性的适用場景,發散并深度解析細粒度資源管理中的技術細節與設計選擇。主要包含以下内容:

  1. 細粒度資源管理的适用場景;
  2. Flink 資源排程架構;
  3. 基于 SlotSharingGroup 的資源配置接口;
  4. 動态資源切割機制;
  5. 插件化的資源申請政策;
  6. 未來展望。

Flink Join 算子優化

孫夢瑤|美團資深開發工程師

對 Apache Flink 引擎 Table API / SQL 語義下現有的 Join 算子的實作邏輯和存在的問題進行剖析,并結合美團實際需求與實踐進行性能優化,擴充可支援的場景。具體分為:

  1. Join 算子現有實作和存在的問題;
  2. Regular Join 算子 mini-batch 優化;
  3. Interval Join 算子 1 對 N 關聯優化;
  4. Join 算子優化在美團的落地與實踐。

Flink 新一代流計算和容錯 - 階段總結和展望

梅源|阿裡巴巴開源大資料架構師,Apache Flink 引擎架構師,Apache Flink Committer

Flink 以流式計算起家,以實時計算為切入點,在大資料計算引擎中脫穎而出。在積極推進計算實時化,流批一體,湖倉一體,與 AI 融合,雲原生以及 Stateful Function 的同時,Flink 也從未停止在流式計算方面演進的步伐。特别是随着 Flink 的應用場景越來越寬泛,對 Flink 的容錯架構提出了更多樣化的需求。

是以這個 talk 以 Flink 容錯為切入點,從三個方面來總結社群在新一代 Flink 容錯模型上近一年來所做的一些工作和對未來的展望,包括:

  1. 通用快照加速;
  2. 狀态管理新模型;
  3. 以及和雲原生相結合的 Flink 擴縮容。

Improvements of Job Scheduler and Query Execution on Flink OLAP

方勇|位元組跳動基礎架構工程師

HTAP 是統一 OLTP 和 OLAP 為一體的資料庫,在位元組 ByteHTAP 項目中,采用 Flink 作為 OLAP 執行引擎,采用 Mysql protocol lib + flink-sql-gateway + flink session cluster on k8s 部署搭建,能夠接收 Flink SQL 并執行,然後将結果直接傳回。單個 OLAP Query 要求運作時間短,且叢集能夠支援高 QPS。故本次分享将介紹 Flink 在支援 OLAP 需求時遇到的排程和執行挑戰和優化。

  1. 背景: Flink 支援 Standalone/Session Cluster 模式,可以直接初始化一批資源對外提供服務;另外 Flink Batch Job 支援 Pipeline 模式,該運作模式類似于 MMP 架構,故能夠承擔 OLAP Query 查詢場景。在 OLAP 場景下,單個 Session Cluster 需要支援同時運作多個 Query;單個 Query 執行時間短,故需要承擔更高 QPS 查詢。Flink 現有的排程流程長,在小 query 的情況下,單次作業排程耗時在整個 query 耗時中的占比更為明顯,同時多個作業同時排程的能力也有待增強;
  2. 現狀分析及優化思路;
  3. 單任務排程優化;
  4. 多任務并發排程優化;
  5. 業務收益;
  6. 未來規劃。

面向流批一體的 Flink Runtime 新進展

高赟|阿裡巴巴技術專家,Apache Flink Committer

随着 Flink 在實時分析場景與實時/離線融合分析場景的進一步應用,我們在社群與内部針對 Flink Runtime 也做了進一步的優化。

針對這兩種場景,繼 Flink 1.13 優化了排程的性能後,Flink 1.14 進一步優化了部署的性能,進而減少 Failover 引起的實時分析作業延遲以及離線處理場景中的非執行開銷。此外,在社群和内部我們也在嘗試通過減少 Checkpoint 時需要保留的資料量與減少需要重新開機的任務數量來進一步降低實時作業中由 Failover 引起的抖動。

對于實時/離線融合分析場景,Flink 進一步完善了流模式下 E2E 一緻性的實作,進而保證兩種模式下執行結果的一緻性。此外,對于批模式我們進一步推出了 Remote Shuffle Service,進而通過存儲-計算分離進一步提高作業的穩定性。我們也在嘗試提供更多的實時/離線融合分析的工具,進而在更多的場景中簡化使用者資料分析的複雜度。

Trisk:在 Flink 上實作以 task 為中心的流處理動态 reconfiguration 的 control plane

毛言粲|新加坡國立大學

由于流處理的長期運作和不可預測的性質,任何靜态配置的流任務的執行都無法及時有效地處理資料。為了達到流處理的性能要求,動态重新配置(reconfiguration)流任務的技術很關鍵。

在本次演講中,我們将介紹 Trisk,這是一個以 task 為中心的 control plane,它支援對流處理的 reonfiguration 進行定義和實作,比如 scaling 和 load balancing,同時,提供了易于使用的程式設計 API 并且能夠保持高效執行 reconfiguration。

Trisk 提供了以 task 為中心的配置抽象,并封裝了原子操作,以便可以通過在抽象上組合原子操作來定義 reconfiguration。為了提高效率,不同于 Flink 本身提供的重新開機更新配置技術,Trisk 采用了部分暫停和恢複的技術來執行 reconfiguration,并且我們的封裝可以進一步利用 Flink 系統中的 Checkpoint 同步機制來實作一緻性。

我們在 Apache Flink 上實作了 Trisk,并将展示它在現實應用場景下的用法和性能。與最先進的 reconfiguration 技術相比,Trisk 能以更短的完成時間和相對可容忍的延遲執行重新配置。

Flink Connector 社群新動向與 Hybrid Source 原理實踐

任慶盛|阿裡巴巴開發工程師,Apache Flink Contributor

蔣曉峰|阿裡巴巴技術專家,Apache RocketMQ & Apache ShardingSphere & SOFAJRaft Committer,Apache Flink Contributor

作為 Flink 生态中的重要一環,Connector 緻力于為開發者提供更多樣的開發支援和更豐富的功能。本次演講将介紹 Flink Connector 在 Flink 1.14 和 1.15 中推出的全新特性,包括:

  1. Connector 測試架構(Testing Framework),為 Connector 提供統一的測試規範和标準用例;
  2. 水印對齊(Watermark Alignment)為 Source 提供全局水印的控制能力;
  3. 混合資料源(Hybrid Source API)的基礎原理與最佳實踐,以及從多個資料源讀取資料提供 CDC 和機器學習資料回填場景的解決方案 等功能,并向開發者展示如何使用這些新功能基于 FLIP-27 Source API 和 FLIP-143 Sink API 快速建構起一個全新的 connector,以及 Flink connector 在社群未來的發展方向與規劃。

基于 FFI 的 PyFlink下一代 Python 運作時介紹

黃興勃|阿裡巴巴進階開發工程師,Apache flink committer,Pyflink 核心貢獻者

  1. 簡單介紹 PyFlink 最新的功能;
  2. 介紹基于 FFI 的多語言調用工具 JCP;
  3. 介紹 PyFlink 現有的 Python 運作時及基于 JCP 建構的下一代 Python 運作時的架構及優勢。

StateBackend PerformanceImprovements with Cache

李明|位元組跳動基礎架構工程師,Apache Flink contributor

目前 Flink 主要提供 FilesystemStateBackend 和 RocksDBStateBackend,但這兩種 StateBackend 在實際生産使用的過程中,都各自存在一些問題,例如 GC 停頓時間長、CPU 使用量高等。同時由于兩種 StateBackend 的特性不同,業務在選型之後如果需要進行 StateBackend 切換,會帶來額外的運維和調參成本。是以我們希望為業務提供一個通用的緩存層,實作提高吞吐,減少資源開銷,降低業務選型難度的目的。本次分享将從原理、痛點、解決方案以及未來規劃等方面進行介紹:

  1. 現有 StateBackend 的基本原理:
    • 業務使用過程中遇到的痛點;
    • FilesystemStateBackend 在狀态比較大時,GC 停頓時間長,業務有感覺;
    • RocksDBStateBackend 的序列化/反序列化開銷重,CPU 使用量高;
    • 選型困難,狀态增長後切換 StateBackend 是有損的;
  2. 優化思路及整體架構設計;
  3. 技術難點及關鍵子產品設計:
    • Cache 的淘汰政策;
    • Cache 占用的記憶體大小預估以及不超過限制;
    • Cache 動态調整大小;
    • Cache 制作快照;

為實時機器學習設計的算法接口與疊代引擎

林東|阿裡巴巴進階技術專家,Apache Kafka PMC Member

本次演講中,我們将介紹在 Apache Flink 機器學習庫 (Flink ML) 中已經完成的工作,近期的發展計劃,以及 Flink ML 的發展願景。

我們設計了原生支援實時機器學習的算法接口,算法使用者可以更容易配置,組合和部署線上預測算法和線上學習算法。所設計的算法接口可以支援多輸入多輸出,以及将算法子產品以有向圖的方式進行組合使用。我們設計并實作了基于 DataStream 的疊代引擎,以取代基于 DataSet 的疊代引擎。針對各種算法的需求,我們設計了更容易使用的疊代引擎接口,為算法開發者優化算法性能提供更豐富的接口選擇。

我們計劃按照新設計的算法接口以及疊代引擎,将阿裡雲研發多年的 Alink 算法庫改造并貢獻進入 Flink ML。通過将 Apache Flink 的強大社群生态,技術領先的 Alink 算法庫,與新設計的算法接口結合在一起,我們希望做到優勢互補,幫助 Flink ML 成為最容易使用的,覆寫最多算法的,以及應用最廣泛的流批一體機器學習算法庫。

以上為 Flink Forward Asia 2021 核心技術專場内容節選,了解更多大會詳情可點選下方連結:

Flink Forward Asia 2021 贊助與合作

FFA 2021 專場解讀 - Flink 核心技術

更多 Flink 相關技術問題,可掃碼加入社群釘釘交流群

第一時間擷取最新技術文章和社群動态,請關注公衆号~

FFA 2021 專場解讀 - Flink 核心技術

活動推薦

阿裡雲基于 Apache Flink 建構的企業級産品-實時計算Flink版現開啟活動:

99 元試用

實時計算Flink版

(包年包月、10CU)即有機會獲得 Flink 獨家定制衛衣;另包 3 個月及以上還有 85 折優惠!

了解活動詳情:

https://www.aliyun.com/product/bigdata/sc
FFA 2021 專場解讀 - Flink 核心技術