日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

Task快速重啟配置

更新時間:

本文為您介紹,如何配置Task快速重啟,從而降低Failover對作業的影響。

背景信息

重要

此功能為實驗性功能,請在生產環境下謹慎使用,如遇問題請及時提交工單和技術支持部門取得聯系。

通常,當Flink流作業中的某個Task發生異常時,為了保證數據一致性,同一個PipelineRegion的所有Task都會進行Failover。作業Failover后,Source節點需要從上一個Checkpoint位點開始消費數據。然而,在一些作業中,Task Failover后還需要下載大資源文件或者State數據。如果作業并發很高,所有Task進行一輪Failover的調度時間可能也會比較長。這些都會導致作業出現延遲或阻塞,一段時間內無法正常消費數據等問題,恢復正常運行所需的時間會更長。

Task快速重啟配置可以有效緩解上述問題。配置Task快速重啟后,當某個Task發生異常時,可以只重啟失敗的Task。從而避免由于非Source Task異常導致的Source Task回退到上一個Checkpoint位點重新消費數據的情況,減少由于Task取消、重啟、追數據導致作業無法正常消費數據的時長。此外,還可以緩解高并發的情況下,所有Task進行一輪Failover的調度時間和初始化給集群造成的壓力,從而降低Failover對作業的影響。

目前Task快速重啟支持兩種一致性語義:APPROXIMATE(不保證數據不丟失和重復)和AT_LEAST_ONCE(保證數據不丟失,不保證數據不重復)。其中APPROXIMATE語義無性能開銷,而AT_LEAST_ONCE語義存在性能開銷且需要額外使用對象存儲OSS。

使用限制

  • 不能在有限數據源的流作業中使用。

  • 無法與Unaligned Checkpoint共同使用。

  • 無法在批作業中使用。

  • 同一個Session集群內無法同時運行未配置和配置了Task快速重啟的作業。

  • 若作業中有算子實現了prepareSnapshotPreBarrier方法,或在運行中會發送與Checkpoint相關的信息,則不可使用AT_LEAST_ONCE語義。

注意事項

語義

注意事項

APPROXIMATE

  • 當某個Task進行Failover時,其上游Task將無法繼續向該Task發送數據,數據將會造成反壓。因此Task Failover期間和之后一段時間出現的反壓和numRecordsInPerSecond指標歸零都是正常情況,在Task Failover完成后會恢復。

    如果作業僅有Rebalance或Rescale邊,且每個邊的下游均有多個并發,可以配合Dynamic Rebalance功能,將數據發送給未出錯的任務處理,從而實現Failover期間數據處理不受影響。

  • 如果Task異常是由TaskManager異常退出或網絡異常導致的,則配置Task快速重啟后,作業Failover的耗時可能不會有明顯的縮短,極端情況下可能會更長。

  • 由于單個Task Failover期間作業Checkpoint會失敗,建議調高容忍Checkpoint失敗的次數。

  • 目前,配置Task快速重啟后,如果發生作業Failover,將會出現數據丟失或重復。因此請您一定要先確保您的業務可以允許出現數據的丟失或重復,再配置Task快速重啟。

  • 啟用Task快速重啟后,您可以忽略Flink UI頁面上顯示的Checkpoint一致性語義。在Flink UI頁面上,Checkpoint一致性語義固定顯示為AT_LEAST_ONCE,但實際為APPROXIMATE,該語義不保證數據不丟失和重復。

AT_LEAST_ONCE

  • 目前的實現下,開啟后作業性能會有一定下降。請關注性能和延遲情況,適當擴充資源。

  • 當某個Task進行Failover時,或AT_LEAST_ONCE語義下Failover后回追數據過程中,其上游Task將無法繼續向該Task發送數據,數據將會造成反壓。因此Task Failover期間和之后一段時間出現的反壓和numRecordsInPerSecond指標歸零都是正常情況,在Task Failover完成后會恢復。

    如果作業僅有Rebalance或Rescale邊,且每個邊的下游均有多個并發,可以配合Dynamic Rebalance功能,將數據發送給未出錯的任務處理,從而實現Failover期間數據處理不受影響。

  • 如果Task異常是由TaskManager異常退出或網絡異常導致的,則配置Task快速重啟后,作業Failover的耗時可能不會有明顯的縮短,極端情況下可能會更長。

  • 由于單個Task Failover期間作業Checkpoint會失敗,建議調高容忍Checkpoint失敗的次數。

  • 開啟后各個Task將以較高頻率保存自身的狀態,同時會記錄輸出的數據,這都會增加作業讀寫OSS的IO量。不建議在State較大或數據流量較大的作業上開啟。

    說明
    • 您可以在EMR控制臺查看OSS使用的帶寬和QPS。

    • 作業當前總IO量可用各節點 Bytes Received的總和 / 運行時間估算。

  • 某個作業開啟該功能導致OSS的IO量增加,可能導致使用同一賬號下的OSS的作業受到影響,反之亦然。因此,請同時關注其他作業情況和OSS使用情況。

  • 部分情況下,包括首次Checkpoint完成前,作業異常會回退為正常的Failover,屬于正常情況。

  • 啟用AT_LEAST_ONCE語義后作業的Checkpoint ID不再為連續數值。

  • 由于作業Failover次數為獨立計數,如果出現全局性異常導致大量Task同時Failover,Failover計數會按照發生異常的Task數量相應增加。

操作步驟

  1. 進入Task快速重啟配置入口。

    1. 登錄實時計算控制臺

    2. 單擊目標工作空間操作列下的控制臺

    3. 運維中心 > 作業運維頁面,單擊目標作業名稱。

    4. 部署詳情頁簽,單擊運行參數配置區域右側的編輯

  2. 其他配置中,增加如下代碼信息。

    • 若使用APPROXIMATE語義:

      individual-task-failover.enabled: enabled_approximate
      shuffle-service-factory.class: org.apache.flink.runtime.io.network.IndividualRecoverableNettyShuffleServiceFactory
    • 若使用AT_LEAST_ONCE語義:

      individual-task-failover.enabled: enabled
      shuffle-service-factory.class: org.apache.flink.runtime.io.network.IndividualRecoverableNettyShuffleServiceFactory
      individual-task-failover.intermediate-checkpointing.interval: 適當的間隔,一般建議為cp周期的1/5到1/10,單位為ms。
      classloader.check-leaked-classloader: false

    如果您的作業使用的是Session模式的集群,則也需要在Session集群的配置中增加上述代碼。Session集群配置詳情請參見步驟一:創建Session集群

  3. 單擊保存

  4. 在頁面頂部,單擊停止

  5. 啟動作業,詳情請參見作業啟動