全部產品
Search
文件中心

Realtime Compute for Apache Flink:作業調試

更新時間:Sep 13, 2024

您可以使用作業調試功能類比作業運行、檢查輸出結果,驗證SELECT或INSERT商務邏輯的正確性,提升開發效率,降低資料品質風險。本文為您介紹如何進行Flink SQL作業調試。

背景資訊

您可以在Flink開發控制台使用作業調試功能本地驗證作業邏輯的正確性,而不會將資料實際寫入您生產的下遊中(無論您使用什麼樣的結果表)。使用調試功能時,您可以使用上遊的線上資料或指定調試資料。調試可以包含多個SELECT或INSERT的複雜作業。此外,查詢語句支援UPSERT,即可以執行count(*)等包含更新操作的語句。

使用限制

  • 作業調試功能需要已建立Session叢集。

  • 僅SQL作業支援作業調試。

  • CTAS和CDAS文法不支援調試。

  • VVR 4.0.8及以下版本的Session叢集不支援調試CDC源表,因為CDC源表不是Append-only模式。

  • Flink全託管預設讀取最多1000條資料後會自動暫停。

注意事項

  • 在建立Session叢集時會消耗叢集資源,其中消耗的資源和您建立叢集時選擇的資源配置有關。

  • VVR 3.0.4及以下版本的每個Session叢集運行後,都會額外消耗0.5 CU的資源。

  • 請勿將Session叢集用於正式生產環境,Session叢集可以作為開發測試環境。使用Session叢集調試作業,可以提高作業JM(Job Manager)資源使用率。在正式環境中使用Session叢集,JM的複用機制會對作業間的穩定性產生負面影響,詳情如下:

    • JobManager單點故障會對叢集內的所有作業造成影響。

    • TaskManager單點故障會對在其上有task啟動並執行相關作業造成影響。

    • 同一個TaskManager內部,不同Task之間如果沒有進程隔離,則存在相互影響的潛在風險。

  • 如果Session叢集為預設配置,則有以下建議:

    • 對於單並發的小作業,建議整個叢集的作業總數不超過100個。

    • 對於複雜作業,建議單作業最大並發數不超過512,64個並發的中等規模作業單叢集不多於32個。否則可能會出現心跳逾時等問題影響叢集穩定性。此時,您需要增大心跳間隔和心跳逾時時間。

    • 如果您需要同時運行更多的任務,則需要增加Session叢集的資源配置。

操作步驟

步驟一:建立Session叢集

  1. 進入Session叢集管理頁面。

    1. 登入Realtime Compute控制台

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

    3. 在左側導覽列上,單擊營運中心 > Session管理

  2. 單擊建立Session叢集

  3. 填寫配置資訊。

    參數詳情如下表所示。

    模組

    配置項

    說明

    基礎配置

    名稱

    Session叢集名稱。

    部署目標

    選擇目標資源隊列,資源隊列建立詳情請參見管理資源隊列

    狀態

    設定當前叢集的期望運行狀態:

    • RUNNING:當叢集配置完成後保持運行狀態。

    • STOPPED:當叢集配置完成後保持停止狀態,同樣會停止所有部署在該Session叢集上啟動並執行作業。

    標籤名

    您可以在標籤選項中添加作業標籤,便於在總覽頁面快速定位作業。

    標籤值

    無。

    配置

    引擎版本

    引擎版本詳情請參見引擎版本介紹生命週期策略。建議您使用推薦版本或穩定版本,引擎版本戳記含義詳情如下:

    • 推薦版本:當前最新大版本下的最新小版本。

    • 穩定版本:還在產品服務期內的大版本下最新的小版本,已修複歷史版本缺陷。

    • 普通版本:還在產品服務期內的其他小版本。

    • EOS版本:超過產品服務期限的版本。

    Flink重啟策略配置

    該參數取值如下:

    • Failure Rate:基於失敗率重啟。

      選擇該選項後,您還需要填寫檢測Failure Rate的時間間隔時間間隔內的最大失敗次數每次重啟時間間隔

    • Fixed Delay:固定間隔重啟。

      選擇該選項後,您還需要填寫嘗試重啟的次數每次重啟時間間隔

    • No Restarts:作業task失敗不會重啟。

    重要

    如果您沒有配置該參數,則按Apache Flink預設的重啟策略,即當有Task失敗時,如果沒有開啟Checkpoint,JobManager進程不會重啟。如果開啟了Checkpoint,則JobManager進程會重啟。

    其他配置

    在此設定更多Flink配置。例如taskmanager.numberOfTaskSlots: 1

    資源配置

    Task Managers數量

    預設與並行度一致。

    JobManager CPU Cores

    預設值為1。

    JobManager Memory

    最小值為1 GiB,推薦值為4 GiB。單位建議使用GiB或MiB,例如,1024 MiB或1.5 GiB。

    JobManager推薦配置包含JobManager資源以及心跳相關參數。具體內容如下:

    • 由於JobManager上承載TaskManager心跳、作業Task序列化和資源調度等功能。因此建議JobManager資源不小於預設配置,請根據叢集負載情況進行處理。

    • 為了叢集穩定,避免JobManager主線程繁忙導致心跳逾時。因此建議心跳間隔(heartbeat.interval)不小於10秒,同時心跳逾時(heartbeat.timeout)不小於50秒。請根據TaskManager個數與作業量上漲情況而上調。

    TaskManager CPU Cores

    預設值為2。

    TaskManager Memory

    最小值為1 GiB,推薦值為8 GiB。單位建議使用GiB或MiB,例如,1024 MiB或1.5 GiB。

    TaskManager推薦配置包含單個TaskManager的Slot個數(taskmanager.numberOfTaskSlots)及TaskManager資源大小。具體內容如下:

    • 對於單並發小作業,建議單Slot的CPU記憶體比為1:4,使用的資源不小於1核2 GiB。

    • 對複雜作業,建議單Slot使用資源不小於1核4 GiB。在預設資源配置下,每個TaskManager可以配置2個Slot。

    • TaskManager資源不宜過小,也不宜過大,推薦預設資源配置並將Slot數目設為2。

      重要
      • 如果單個TaskManager資源過小,則可能影響其上作業的穩定性,並且由於其Slot數目不多,無法有效平攤TaskManager的開銷,降低了資源的利用效率。

      • 如果單個TaskManager資源過大,則TaskManager上啟動並執行作業數會很多,一旦TaskManager發生單點故障,影響面會很大。

    日誌配置

    根日誌等級

    記錄層級從低到高的順序如下:

    1. TRACE:比DEBUG更細粒度的資訊。

    2. DEBUG:系統運行狀態的資訊。

    3. INFO:重要或者您感興趣的資訊。

    4. WARN:系統可能出現潛在錯誤的資訊。

    5. ERROR:系統出現錯誤和異常的資訊。

    類日誌等級

    填寫日誌名和層級。

    日誌模板

    可以選擇系統模板或自訂模板。

    說明

    關於Flink與Resource Orchestration Service架構(例如Kubernetes、Yarn等)整合的相關選項詳情,請參見Resource Orchestration Frameworks

  1. 單擊建立Session叢集

    Session叢集建立完成後,您可以在作業調試介面或部署介面選擇此叢集。

步驟二:作業調試

  1. SQL作業開發,編寫作業代碼。詳情請參見SQL作業開發

  2. 在作業開發頁面,單擊調試,並選擇調試叢集,單擊下一步

  3. 配置調試資料。

    • 如果您使用線上資料,直接單擊確認即可。

    • 如果您需要使用調試資料,需要先單擊下載調試資料範本後,填寫調試資料後,上傳調試資料。使用調試資料

      其中該頁面涉及的功能解釋如下。

      配置項

      說明

      下載調試資料範本

      為了便於編輯,您可以直接下載調試資料範本,模板已適配源表的資料結構。

      上傳調試資料

      如果您需要使用本地調試資料進行調試,您可以先下載調試資料範本,在本地編輯好資料後上傳,並選中使用調試資料

      調試資料檔案存在以下限制:

      • 上傳檔案僅支援CSV格式。

      • CSV格式的檔案必須含有表頭,例如 id(INT)。

      • 調試資料CSV檔案最大支援1 MB或1千條記錄。

      資料預覽

      上傳好調試資料後,單擊源表名稱左側的加號表徵圖,可以預覽資料和下載調試資料。

      調試代碼預覽

      調試功能會自動改變源表和結果表的DDL代碼,但不會改變作業中的實際代碼。您可以在下方預覽代碼詳情。

  4. 確定好調試資料後,單擊確定

    單擊確定後,SQL編輯器下方會顯示調試結果。調試結果

相關文檔