<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Flink 官宣|Apache Flink 1.15 發(fā)布公告

          共 14230字,需瀏覽 29分鐘

           ·

          2022-05-10 02:17

          作者 |?Joe Moser &?高赟

          翻譯 | 高赟


          Apache Flink,作為 Apache 社區(qū)最活躍的項(xiàng)目之一[1]一直秉承積極開放的態(tài)度不斷進(jìn)行技術(shù)深耕。在此我們很榮幸的發(fā)布 Flink 1.15 版本,并和大家分享這個(gè)版本令人振奮的一些功能和改進(jìn)!

          Apache Flink 核心概念之一是流 (無界數(shù)據(jù)) 批 (有界數(shù)據(jù)) 一體。流批一體極大的降低了流批融合作業(yè)的開發(fā)復(fù)雜度。在過去的幾個(gè)版本中,F(xiàn)link 流批一體逐漸成熟,F(xiàn)link 1.15 版本中流批一體更加完善,后面我們也將繼續(xù)推動(dòng)這一方向的進(jìn)展。目前大數(shù)據(jù)處理的一個(gè)趨勢(shì)是越來越多的業(yè)務(wù)和場(chǎng)景采用低代碼的方式進(jìn)行數(shù)據(jù)分析,而 Flink SQL則是這種低代碼方式數(shù)據(jù)分析的典型代表。越來越多的用戶開始采用 Flink SQL 來實(shí)現(xiàn)他們的業(yè)務(wù),這也是 Flink 用戶和生態(tài)快速增長(zhǎng)的重要原因之一。Apache Flink 作為數(shù)據(jù)處理生態(tài)中的重要一環(huán),可以與許多其他技術(shù)結(jié)合在一起支持各類用戶場(chǎng)景。在當(dāng)下云原生的背景下,我們也盡可能將 Flink 與這些系統(tǒng)以及各類云基礎(chǔ)設(shè)施進(jìn)行無縫集成。

          在 1.15 版本中,Apache Flink 社區(qū)在上述這些方面都取得了重大進(jìn)展:

          • 1.15 版本的一大看點(diǎn)是改進(jìn)了運(yùn)維 Apache Flink 的體驗(yàn):包括明確 Checkpoint 和 Savepoint 在不同作業(yè)之間的所屬權(quán),簡(jiǎn)化 Checkpoint 和 Savepoint 生命周期管理;更加無縫支持完整的自動(dòng)伸縮;通過 Watermark 對(duì)齊來消除多個(gè)數(shù)據(jù)源速率不同帶來的問題等

          • 1.15 版本中,F(xiàn)link 進(jìn)一步完善流批一體的體驗(yàn):繼續(xù)完善部分作業(yè)完成后的 Checkpoint 操作;支持批模式下的 Window table-valued 函數(shù),并且使其在流批混合的場(chǎng)景下更加易用。

          • Flink SQL 的進(jìn)階:包括能夠在不丟失狀態(tài)的情況下升級(jí) SQL 作業(yè);添加了對(duì) JSON 相關(guān)函數(shù)的支持來簡(jiǎn)化數(shù)據(jù)的輸入與輸出操作。

          • Flink 作為整個(gè)數(shù)據(jù)處理生態(tài)中的一環(huán),1.15 版本進(jìn)一步提升了與云服務(wù)的交互操作性,并且添加了更多的 Sink 連接器與數(shù)據(jù)格式。最后,我們在運(yùn)行時(shí)中去除了對(duì) Scala 的依賴[2]


          輕松運(yùn)維 Apache Flink


          長(zhǎng)期來看,即使是由最好的工程團(tuán)隊(duì)來進(jìn)行構(gòu)建和調(diào)優(yōu),F(xiàn)link 作業(yè)仍然依賴運(yùn)維操作。Flink 支持多種不同的部署模式、API、調(diào)優(yōu)配置與用例,這意味著運(yùn)維工作至關(guān)重要并且可能十分繁重。

          在這個(gè)版本中,我們聽取了用戶的反饋,對(duì) Flink 的運(yùn)維操作進(jìn)行了簡(jiǎn)化,使用戶能夠更加輕松的進(jìn)行運(yùn)維。現(xiàn)在 Flink 明確了 Checkpoint 與 Savepoint 在不同作業(yè)之間的所屬權(quán);更加無縫支持完整的自動(dòng)伸縮;通過 Watermark 對(duì)齊消除多個(gè)數(shù)據(jù)源產(chǎn)出速率不同帶來的問題,并且初步支持了在不丟失狀態(tài)的情況下升級(jí) SQL 作業(yè)的能力。

          澄清 Checkpoint 與 Savepoint 語義


          Flink 容錯(cuò)策略的兩個(gè)重要基礎(chǔ)概念是 Checkpoint[3]?與?Savepoint[4]?(參見比較[5])。


          Savepoint 的主要作用是支持作業(yè)修改、備份與升級(jí)等場(chǎng)景,它是由用戶來完全控制的。而另一方面,Checkpoint 由 Flink 完全控制,用于通過支持快速恢復(fù)與重啟來實(shí)現(xiàn)容錯(cuò)的能力。這兩個(gè)概念十分相似,并且它們共享了很大一部分實(shí)現(xiàn)。


          然而,由于遵循不同的功能要求,這兩個(gè)概念逐漸變得不一致,使用戶看起來沒有完整的頂層設(shè)計(jì)。根據(jù)用戶反饋,這兩個(gè)概念應(yīng)該被更好地對(duì)齊和協(xié)調(diào),最重要的是,這兩個(gè)概念應(yīng)該被更清晰的定義。


          在某些停止或重新啟動(dòng)作業(yè)的場(chǎng)景下,雖然邏輯上應(yīng)該使用 Savepoint,但用戶還是會(huì)選擇使用持久化的 Checkpoint,因?yàn)?Savepoint 無法享受 Checkpoint 可以使用的一些優(yōu)化而導(dǎo)致執(zhí)行較為緩慢。但是在這種情況下,作業(yè)從持久化的 Checkpoint 重啟時(shí) (這種情況下 Checkpoint 實(shí)際上被當(dāng)作 Savepoint 來使用),對(duì)用戶來說何時(shí)可以清理 Checkpoint 中的數(shù)據(jù)并不十分清楚。


          因此,在 FLIP-193: 狀態(tài)所屬權(quán)[6]?中,F(xiàn)link 希望可以將 Savepoint 和 Checkpoint 抽像成唯一區(qū)別是所屬權(quán)不同的兩個(gè)概念。在 1.15 中,通過支持原生的增量 Savepoint[7],F(xiàn)link 解決了 Savepoint 的一些不足:在過去的版本中,Savepoint 總是使用標(biāo)準(zhǔn)格式以及非增量的方式,這也是導(dǎo)致它性能較差的原因。在 1.15 中,如果用戶選擇使用原生格式并且同時(shí)使用了 RocksDB?狀態(tài)存儲(chǔ),那么 Savepoint 將采用增量的方式來執(zhí)行。我們也更新了相關(guān)文檔來更好的概覽與理解 Checkpoint 與 Savepoint 的差異。此外,關(guān)于從 Savepoint / 持久化的 Checkpoint 恢復(fù)[8]?的語義,我們顯式的引入了 CLAIM 與 NO_CLAIM 兩種模式。對(duì)于 CLAIM 模式 Flink 將接管快照中數(shù)據(jù)的所屬權(quán),而對(duì)于 NO_CLAIM 模式,F(xiàn)link 將創(chuàng)建它自己的副本,而由用戶來負(fù)責(zé)管理與刪除原始的數(shù)據(jù)。注意現(xiàn)在默認(rèn)將采用 NO_CLAIM 模式,之前版本中從 Savepoint / 持久化的 Checkpoint 恢復(fù)的行為可以通過指定 LEGACY 模式來恢復(fù)。

          基于 Reactive 模式與自適應(yīng)調(diào)度器的彈性伸縮


          由于越來越多的云服務(wù)基于 Apache Flink 構(gòu)建 ,F(xiàn)link 項(xiàng)目變得越來越云原生,這使得彈性伸縮也越來越重要。


          此版本改進(jìn)了?Reactive 模式[9]?的指標(biāo)。Reactive 模式是一個(gè)作業(yè)級(jí)別的模式,在這種模式下, JobManager 將嘗試使用所有可用的 TaskManager 上的資源。我們?cè)?1.15 中保證了作業(yè)級(jí)別的指標(biāo)在 Reactive 模式下也可以正常的工作。


          我們還為自適應(yīng)調(diào)度器[10]?添加了異常歷史記錄。自適應(yīng)調(diào)度器是一個(gè)新的調(diào)度器,它首先聲明了所需的資源并且根據(jù)根據(jù)資源情況在執(zhí)行前決定資源的并行度。


          此外,F(xiàn)link 提高了縮減作業(yè)規(guī)模的速度:TaskManager 現(xiàn)在有一個(gè)專用代碼路徑來關(guān)閉自己,它會(huì)主動(dòng)從集群中注銷自己而不是依賴于心跳,從而給 JobManager 一個(gè)明確的縮減作業(yè)規(guī)模的信號(hào)。


          自適應(yīng)批調(diào)度器


          在 1.15 中,我們?yōu)?Apache Flink 引入了一個(gè)新的自適應(yīng)批處理調(diào)度器[11]。這一調(diào)度器可以自動(dòng)根據(jù)每個(gè)節(jié)點(diǎn)需要處理的數(shù)據(jù)量的大小自動(dòng)決定批處理作業(yè)中各節(jié)點(diǎn)的并行度。


          此調(diào)度器的主要優(yōu)點(diǎn)包括:


          1. 易用性:批處理作業(yè)的用戶不再需要手動(dòng)調(diào)優(yōu)并行度。

          2. 自適應(yīng):自動(dòng)調(diào)整并行度可以更好地適應(yīng)節(jié)點(diǎn)消費(fèi)數(shù)據(jù)集隨時(shí)間發(fā)生變化的情況。

          3. 細(xì)粒度:每個(gè)作業(yè)節(jié)點(diǎn)的并行度可以單獨(dú)調(diào)整。這允許 SQL 批處理作業(yè)的節(jié)點(diǎn)自動(dòng)為每個(gè)節(jié)點(diǎn)選擇單獨(dú)選擇最適合的并行度。


          跨源節(jié)點(diǎn)的 Watermark 對(duì)齊


          如果一個(gè)作業(yè)中使用了多個(gè)數(shù)據(jù)源節(jié)點(diǎn),并且這些數(shù)據(jù)源以不同的節(jié)奏來增長(zhǎng) Watermark,這可能在下游節(jié)點(diǎn)中產(chǎn)生一些問題。例如,一些算子可能需要緩存非常大量的數(shù)據(jù),從而導(dǎo)致巨大的算子狀態(tài)。因此,我們?cè)谶@一版本中引入了 Watermark 對(duì)齊的能力。

          基于新的 Source 接口來實(shí)現(xiàn)的數(shù)據(jù)源節(jié)點(diǎn)可以啟用 Watermark 對(duì)齊功能[12]。用戶可以定義對(duì)齊組,如果其中某個(gè)源節(jié)點(diǎn)與其它節(jié)點(diǎn)相比 Watermark 領(lǐng)先過多,用戶可以暫停從該節(jié)點(diǎn)中消費(fèi)數(shù)據(jù)。對(duì)齊 Watermark 的理想情況是有兩個(gè)或更多以不同速度產(chǎn)生 Watermark 的數(shù)據(jù)源節(jié)點(diǎn),并且數(shù)據(jù)源節(jié)點(diǎn)并發(fā)與外部系統(tǒng)的分片數(shù)量相同的情況。


          SQL 版本升級(jí)


          SQL 查詢的執(zhí)行計(jì)劃及其生成的拓?fù)涫峭ㄟ^優(yōu)化規(guī)則和一個(gè)基于成本的模型來得到的,這意味著即使最小的更改也可能會(huì)產(chǎn)生一個(gè)完全不同的拓?fù)洹?/span>這種動(dòng)態(tài)性使得在不同 Flink 版本間保證快照兼容性非常具有挑戰(zhàn)性。在 1.15 中,社區(qū)首先通過保持拓?fù)洳蛔兊姆绞绞瓜嗤牟樵冊(cè)谏?jí) Flink 版本后仍然可以啟動(dòng)和執(zhí)行。


          SQL 升級(jí)的核心是 JSON 計(jì)劃 (即以 JSON 表達(dá)的查詢執(zhí)行計(jì)劃,我們目前只有 JavaDocs 中的文檔,并且仍在努力更新文檔[13]),JSON Plan 可以讓 SQL 計(jì)劃以結(jié)構(gòu)化數(shù)據(jù)的方式被導(dǎo)入和導(dǎo)出,之前這一功能是一個(gè)內(nèi)部實(shí)現(xiàn),現(xiàn)在它將被公開以提供給用戶使用。Table API 與 SQL 都會(huì)提供一種方式來編譯和執(zhí)行一個(gè)保證在不同版本中保持不變的執(zhí)行計(jì)劃。此功能將作為實(shí)驗(yàn)性 MVP 功能發(fā)布。想要嘗試的用戶已經(jīng)可以創(chuàng)建一個(gè) JSON 計(jì)劃,然后可以使用這一計(jì)劃在升級(jí)后基于舊的算子結(jié)構(gòu)恢復(fù) Flink 作業(yè)。我們將在 1.16 中提供這一功能的完整支持。

          從長(zhǎng)遠(yuǎn)來看,可靠的升級(jí)使 Flink SQL 可以在線上生產(chǎn)場(chǎng)景更加可靠的使用。

          基于 Changelog 的狀態(tài)存儲(chǔ)


          在 Flink 1.15 中,我們引入了 MVP 特性:基于 Changelog 的狀態(tài)存儲(chǔ)[14]。這一新的狀態(tài)存儲(chǔ)旨在支持更短、更可以預(yù)測(cè)的 Checkpoint 間隔。它具有以下優(yōu)勢(shì):


          1. 更短的端到端延遲:端到端延遲主要取決于 Checkpoint 機(jī)制,特別是使用了兩階段提交的支持端到端一致性的 Sink 節(jié)點(diǎn)的情況,這種情況下縮短 Checkpoint 周期意味著可以更快的提交數(shù)據(jù)。

          2. 更可預(yù)測(cè)的 Checkpoint 間隔:目前 Checkpoint 的完成時(shí)間很大程度上取決于需要保存在 Checkpoint 中的數(shù)據(jù)的大小。通過使這一數(shù)據(jù)總是可以很小,Checkpoint 的完成時(shí)間變得更加可以預(yù)測(cè)。

          3. 恢復(fù)工作更少:Checkpoint 越頻繁,每次重啟后重新處理的數(shù)據(jù)也會(huì)越少。

          基于 Changelog 的狀態(tài)存儲(chǔ)通過在后臺(tái)不斷向非易失性存儲(chǔ)上上傳狀態(tài)變化的記錄來實(shí)現(xiàn)上述目標(biāo)。

          可重復(fù)的清理


          在以前的 Flink 版本中,F(xiàn)link 在作業(yè)結(jié)束時(shí)只嘗試清理一次與作業(yè)相關(guān)的殘留數(shù)據(jù),這可能會(huì)導(dǎo)致在發(fā)生錯(cuò)誤時(shí)無法完成清理。在這個(gè)版本中,F(xiàn)link 將嘗試重復(fù)運(yùn)行清理以避免殘留數(shù)據(jù)。默認(rèn)情況下,F(xiàn)link 將不斷重試機(jī)制,直到運(yùn)行成功為止。用戶可以通過配置相關(guān)參數(shù)[15]?來改變這種行為。禁用重試策略可以恢復(fù) Flink 之前版本的行為。


          清理 Checkpoint 的相關(guān)工作仍在進(jìn)行中,包括 FLINK-26606[16]

          Open API


          Flink 現(xiàn)在提供遵循 Open API[17]?標(biāo)準(zhǔn)的 REST API 規(guī)范。這允許 REST API 與遵循 Open API 標(biāo)準(zhǔn)的工具直接交互。您可以在 [18] 找到相應(yīng)規(guī)范。


          Application模式的改進(jìn)


          Application 模式[19]?下運(yùn)行 Flink 時(shí),如果用戶進(jìn)行了相關(guān)配置[20],它現(xiàn)在可以保證作業(yè)在結(jié)束前能夠正常完成 stop-with-savepoint 操作。


          在 Application 模式下運(yùn)行的作業(yè)的恢復(fù)和清理也得到了改進(jìn)。本地狀態(tài)的元數(shù)據(jù)也可以保存在工作目錄中,這使得從本地狀態(tài)恢復(fù)更容易 (例如將工作目錄設(shè)定在非易失的跨機(jī)器的存儲(chǔ)中的情況,之前本地狀態(tài)的元數(shù)據(jù)保存在內(nèi)存中,因此在作業(yè)恢復(fù)時(shí)無法找回)。

          流批一體的更多進(jìn)展


          在最新版本中,我們對(duì)流批一體的支持進(jìn)行了進(jìn)一步的完善。


          作業(yè)結(jié)束前的 Checkpoint


          在 Flink 1.14 中,添加了對(duì)作業(yè)結(jié)束前等待一次 Checkpoint 操作的支持,從而保證使用流模式處理有限數(shù)據(jù)可以保證所有被據(jù)被提交,但是在 1.14 中,該功能必須被手動(dòng)啟用。自上次發(fā)布以來,我們聽取了用戶反饋并決定默認(rèn)啟用它。關(guān)于這一功能的更多信息以及如何禁用此功能,請(qǐng)參閱 [21]。需要指出的是,這一默認(rèn)配置的變化可能延長(zhǎng)使用流模式處理有界數(shù)據(jù)時(shí)的執(zhí)行時(shí)間,因?yàn)樽鳂I(yè)必須在結(jié)束前等待下一個(gè) Checkpoint 完成。


          Window table-valued 函數(shù)


          Window table-valued 函數(shù)[22]?之前僅可用于流模式下。在 1.15 中,它們現(xiàn)在也可以在批模式下使用。此外,通過實(shí)現(xiàn)一個(gè)專門的算子,我們現(xiàn)在不再要求這些 Window 函數(shù)必須定義一個(gè)聚合器,從而進(jìn)一步增強(qiáng)了 Window table-valued 函數(shù)。


          Flink SQL


          社區(qū)指標(biāo)表明 Flink SQL 被廣泛使用并且變得越來越流行。在 1.15 中社區(qū)對(duì) Flink SQL 也做了許多改進(jìn),下文將更加詳細(xì)地討論其中兩個(gè)改進(jìn)。


          CAST / 類型系統(tǒng)增強(qiáng)

          數(shù)據(jù)以各種形式出現(xiàn),但是并不是所有情況下都是用戶需要的類型,因此 CAST[23]?是 SQL 中最常見的操作之一。在 Flink 1.15 中,失敗的 CAST 的默認(rèn)行為已從返回 null 更改為返回錯(cuò)誤,從而使它更符合 SQL 標(biāo)準(zhǔn)。之前的行為可以通過調(diào)用新引入的 TRY_CAST 函數(shù)或通過在恢復(fù)時(shí)配置相應(yīng)參數(shù)來實(shí)現(xiàn)。

          此外,F(xiàn)link 1.15 也修正了許多 CAST 的錯(cuò)誤并對(duì)它的功能進(jìn)行了改進(jìn),從而保證結(jié)果的正確性。

          JSON 函數(shù)

          JSON 是最流行的數(shù)據(jù)格式之一,越來越多的 SQL 用戶需要生成或讀取 JSON 類型的數(shù)據(jù)。Flink 1.15 根據(jù) SQL 2016 標(biāo)準(zhǔn)引入了多個(gè) JSON 處理函數(shù)[24]。這些函數(shù)允許用戶來使用 Flink SQL 方言檢查、創(chuàng)建和修改 JSON 字符串。

          社區(qū)支持


          Flink 的一個(gè)重要目標(biāo)是使用戶能夠構(gòu)建流數(shù)據(jù)管道來解決他們的用例。一般來說,Apache Flink 不會(huì)單獨(dú)使用,而是作為更大的數(shù)據(jù)分析平臺(tái)中的重要一環(huán)。因此,簡(jiǎn)化 Flink 在云環(huán)境下的使用與維護(hù)、支持無縫連接到其他系統(tǒng)并繼續(xù)支持 Java 和 Python 等編程語言對(duì)完善 Flink 生態(tài)十分重要。


          云環(huán)境互操作性

          許多用戶在不同云服務(wù)提供商所提供的云基礎(chǔ)設(shè)施中部署與使用 Flink,同時(shí)也有一些服務(wù)可以幫助用戶管理部署在他們的平臺(tái)上的 Flink 集群。

          在 Flink 1.15 中,我們新增了寫入 Google Cloud Storage 的支持。我們還整理了 Flink 生態(tài)中的連接器并把精力放在支持 AWS 相關(guān)的生態(tài)上 (即 KDS[25]?Firehose[26])。

          Elasticsearch Sink

          我們?cè)?Flink 的整個(gè)連接器生態(tài)上進(jìn)行了大量工作,但我們想強(qiáng)調(diào) Elasticsearch Sink[27]:它是基于最新的 Sink API 來實(shí)現(xiàn)的,因此可以提供異步輸出與端到端一致性的能力。它可以作為未來更多 Sink 實(shí)現(xiàn)的模板。

          Scala-free 的 Flink

          博文[28]?已經(jīng)解釋了為什么 Scala 用戶現(xiàn)在可以結(jié)合任何 Scala 版本 (包括 Scala 3) 使用 Flink的 Java API。

          最后,刪除 Scala 依賴只是清理和更新來自 Flink 生態(tài)系統(tǒng)的各種技術(shù)的更大工作的一部分。

          從 Flink 1.14 開始,我們移除了 Mesos 集成,隔離了 Akka,廢棄了 DataSet Java API,并將 Table API 隱藏在一個(gè)抽象后面。社區(qū)的這些努力也吸引了許多用戶與貢獻(xiàn)者的關(guān)注。

          PyFlink

          在 Flink 1.15 之前,Python API 中用戶定義的函數(shù)是在單獨(dú)的 Python 進(jìn)程中執(zhí)行的,這將導(dǎo)致額外的序列化/反序列化和進(jìn)程通信開銷。在數(shù)據(jù)較大的場(chǎng)景中,例如圖像處理等,這個(gè)開銷變得不可忽視。此外,由于它涉及進(jìn)程間通信,這一處理延遲也是不可忽略的。這些問題在延遲至關(guān)重要的場(chǎng)景是不可接受的,例如量化交易等。因此,在 Flink 1.15 中,我們引入了一種 “線程” 模式的新執(zhí)行模式:用戶自定義的函數(shù)將在 JVM 中作為線程執(zhí)行,而不是在單獨(dú)的 Python 進(jìn)程中執(zhí)行。基準(zhǔn)測(cè)試表明在 JSON 處理等常見場(chǎng)景中吞吐量可以增加 2 倍,處理延遲也從幾秒到微秒。需要指出的是,由于這仍然是 “線程” 模式的第一個(gè)版本,此前它僅支持 Python Table API 與 SQL 中的標(biāo)量函數(shù)。我們計(jì)劃在下一版本中將其擴(kuò)展到 Python API 中其他類型的自定義函數(shù)。

          其? 它


          Flink 1.15 進(jìn)一步完善了對(duì)于連接器測(cè)試框架[29]?的支持,如果你想貢獻(xiàn)一個(gè)連接器或改進(jìn)一個(gè)連接器,你絕對(duì)應(yīng)該看一下這部分工作。


          Flink 1.15 也添加了一些期待已久的功能,包括 CSV 格式[30]?小文件壓縮[31]

          同時(shí),Sink API 被升級(jí)到版本 2[32]。我們鼓勵(lì)每個(gè)連接器的維護(hù)者升級(jí)到這個(gè)版本。

          總? 結(jié)


          Apache Flink 簡(jiǎn)化了運(yùn)維操作,在對(duì)齊流批處理功能取得進(jìn)一步進(jìn)展,改進(jìn)了 SQL 組件使其變得更易于使用,并且現(xiàn)在可以更好地與其他系統(tǒng)進(jìn)行集成。

          同值得一提的是社區(qū)為 CDC 連接器[33]?建立了一個(gè)新家。同時(shí),連接器相關(guān)代碼[34]?將被移動(dòng)到 Flink 外一個(gè)單獨(dú)的倉庫中 (以 Elasticsearch Sink 作業(yè)第一個(gè)例子[35])。此外,現(xiàn)在社區(qū)新增了一個(gè)由社區(qū)維護(hù)的關(guān)K8s Operator[36]?公告博客[37]

          展望未來,社區(qū)將繼續(xù)專注于使 Apache Flink 成為真正的流批一體處理系統(tǒng),并致力于將 Flink 更好地集成到云原生生態(tài)系統(tǒng)中。

          升級(jí)說明


          雖然我們的目標(biāo)是盡可能支持平穩(wěn)升級(jí),但是一些改動(dòng)仍然需要用戶在升級(jí)到 1.15 的時(shí)候?qū)λ鼈兊某绦蜻M(jìn)行調(diào)整。請(qǐng)參考 Release Notes[38]?來獲得在升級(jí)時(shí)需要進(jìn)行的改動(dòng)與可能的問題列表。其中最值得一提的是由于去除 Scala 依賴的努力,現(xiàn)在許多依賴項(xiàng)中不再需要添加 Scala 版本后綴。關(guān)于更多信息可以參考[39]

          原文鏈接:

          https://flink.apache.org/news/2022/05/05/1.15-announcement.html


          貢獻(xiàn)者列表


          Apache Flink 社區(qū)感謝對(duì)此版本做出貢獻(xiàn)的每一位貢獻(xiàn)者:


          Ada Wong, Ahmed Hamdy, Aitozi, Alexander Fedulov, Alexander Preu?, Alexander Trushev, Ali Bahadir Zeybek, Anton Kalashnikov, Arvid Heise, Bernard Joseph Jean Bruno, Bo Cui, Brian Zhou, Camile, ChangLi, Chengkai Yang, Chesnay Schepler, Daisy T, Danny Cranmer, David Anderson, David Moravek, David N Perkins, Dawid Wysakowicz, Denis-Cosmin Nutiu, Dian Fu, Dong Lin, Eelis Kostiainen, Etienne Chauchot, Fabian Paul, Francesco Guardiani, Gabor Somogyi, Galen Warren, Gao Yun, Gen Luo, GitHub, Gyula Fora, Hang Ruan, Hangxiang Yu, Honnix, Horace Lee, Ingo Bürk, JIN FENG, Jack, Jane Chan, Jark Wu, JianZhangYang, Jiangjie (Becket) Qin, JianzhangYang, Jiayi Liao, Jing, Jing Ge, Jing Zhang, Jingsong Lee, JingsongLi, Jinzhong Li, Joao Boto, Joey Lee, John Karp, Jon Gillham, Jun Qin, Junfan Zhang, Juntao Hu, Kexin, Kexin Hui, Kirill Listopad, Konstantin Knauf, LB-Yu, Leonard Xu, Lijie Wang, Liu Jiangang, Maciej Bryński, Marios Trivyzas, MartijnVisser, Mason Chen, Matthias Pohl, Michal Ciesielczyk, Mika, Mika Naylor, Mrart, Mulavar, Nick Burkard, Nico Kruber, Nicolas Raga, Nicolaus Weidner, Niklas Semmler, Nikolay, Nuno Afonso, Oleg Smirnov, Paul Lin, Paul Zhang, PengFei Li, Piotr Nowojski, Px, Qingsheng Ren, Robert Metzger, Roc Marshal, Roman, Roman Khachatryan, Ruanshubin, Rudi Kershaw, Rui Li, Ryan Scudellari, Ryan Skraba, Sebastian Mattheis, Sergey, Sergey Nuyanzin, Shen Zhu, Shengkai, Shuo Cheng, Sike Bai, SteNicholas, Steffen Hausmann, Stephan Ewen, Tartarus0zm, Thesharing, Thomas Weise, Till Rohrmann, Timo Walther, Tony Wei, Victor Xu, Wenhao Ji, X-czh, Xianxun Ye, Xin Yu, Xinbin Huang, Xintong Song, Xuannan, Yang Wang, Yangze Guo, Yao Zhang, Yi Tang, Yibo Wen, Yuan Mei, Yuanhao Tian, Yubin Li, Yuepeng Pan, Yufan Sheng, Yufei Zhang, Yuhao Bi, Yun Gao, Yun Tang, Yuval Itzchakov, Yuxin Tan, Zakelly, Zhu Zhu, Zichen Liu, Zongwen Li, atptour2017, baisike, bgeng777, camilesing, chenxyz707, chenzihao, chuixue, dengziming, dijkwxyz, fanrui, fengli, fenyi, fornaix, gaurav726, godfrey he, godfreyhe, gongzhongqiang, haochenhao, hapihu, hehuiyuan, hongshuboy, huangxingbo, huweihua, iyupeng, jiaoqingbo, jinfeng, jxjgsylsg, kevin.cyj, kylewang, lbb, liliwei, liming.1018, lincoln lee, liufangqi, liujiangang, liushouwei, liuyongvs, lixiaobao14, lmagic233, lovewin99, lujiefsi, luoyuxia, lz, mans2singh, martijnvisser, mayue.fight, nanmu42, oogetyboogety, paul8263, pusheng.li01, qianchutao, realdengziqi, ruanhang1993, sammieliu, shammon, shihong90, shitou, shouweikun, shouzuo1, shuo.cs, siavash119, simenliuxing, sjwiesman, slankka, slinkydeveloper, snailHumming, snuyanzin, sujun, sujun1, syhily, tsreaper, txdong-sz, unknown, vahmed-hamdy, wangfeifan, wangpengcheng, wangyang0918, wangzhiwu, wangzhuo, wgzhao, wsz94, xiangqiao123, xmarker, xuyang, xuyu, xuzifu666, yangjunhan, yangze.gyz, ysymi, yuxia Luo, zhang chaoming, zhangchaoming, zhangjiaogg, zhangjingcun, zhangjun02, zhangmang, zlzhang0122, zoucao, zp, zzccctv, 周平, 子揚(yáng), 李銳, 蔣龍, 龍三, 莊天翼


          參考鏈接

          [1]?https://www.apache.org/foundation/docs/FY2021AnnualReport.pdf
          [2] https://flink.apache.org/2022/02/22/scala-free.html
          [3] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/ops/state/checkpoints/
          [4] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/ops/state/savepoints/
          [5] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/ops/state/checkpoints_vs_savepoints/
          [6]?https://cwiki.apache.org/confluence/display/FLINK/FLIP-193%3A+Snapshots+ownership
          [7] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/ops/state/savepoints/#savepoint-format
          [8] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/ops/state/savepoints/#resuming-from-savepoints
          [9] https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/elastic_scaling/#reactive-mode
          [10]?https://cwiki.apache.org/confluence/display/FLINK/FLIP-160%3A+Adaptive+Scheduler
          [11] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/elastic_scaling/#adaptive-batch-scheduler
          [12] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/dev/datastream/event-time/generating_watermarks/#watermark-alignment-_beta_
          [13] https://nightlies.apache.org/flink/flink-docs-release-1.15/api/java/org/apache/flink/table/api/CompiledPlan.html
          [14] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/ops/state/state_backends/#enabling-changelog
          [15] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/config/#retryable-cleanup
          [16] https://issues.apache.org/jira/browse/FLINK-26606
          [17] https://www.openapis.org
          [18] https://nightlies.apache.org/flink/flink-docs-master/docs/ops/rest_api/#jobmanager
          [19] https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/overview/
          [20] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/config/#execution-shutdown-on-application-finish
          [21] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/dev/datastream/fault-tolerance/checkpointing/#checkpointing-with-parts-of-the-graph-finished
          [22] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/dev/table/sql/queries/window-tvf/
          [23] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/dev/table/types/#casting
          [24] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/dev/table/functions/systemfunctions/#json-functions
          [25] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/connectors/datastream/kinesis/
          [26] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/connectors/datastream/firehose/
          [27] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/connectors/datastream/elasticsearch/
          [28] https://flink.apache.org/2022/02/22/scala-free.html
          [29]?https://github.com/PatrickRen/flink/tree/master/flink-test-utils-parent/flink-connector-testing
          [30] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/connectors/datastream/formats/csv/
          [31] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/connectors/datastream/filesystem/#compaction
          [32] https://github.com/apache/flink/blob/master/flink-core/src/main/java/org/apache/flink/api/connector/sink2/StatefulSink.java
          [33] https://ververica.github.io/flink-cdc-connectors/release-2.1/index.html
          [34]?https://cwiki.apache.org/confluence/display/FLINK/Connectors
          [35] https://github.com/apache/flink-connector-elasticsearch/
          [36] https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main/
          [37] https://flink.apache.org/news/2022/04/03/release-kubernetes-operator-0.1.0.html
          [38] https://nightlies.apache.org/flink/flink-docs-release-1.15/release-notes/flink-1.15/
          [39] https://flink.apache.org/2022/02/22/scala-free.html



          ▼ 關(guān)注「Apache Flink」,獲取更多技術(shù)干貨?

          更多 Flink 相關(guān)技術(shù)問題,可掃碼加入社區(qū)釘釘交流群~

          ???點(diǎn)擊查看更多技術(shù)內(nèi)容~

          瀏覽 28
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产四区| www.91爱爱 | 欧美三级片在线观看 | 成人免费视频一区二区 | 日韩国产一级无码 |