本文為您介紹如何在E-MapReduce上提交Flink作業以及查看作業。
背景資訊
Dataflow叢集中的Flink服務是以YARN模式部署的,您可以通過SSH方式登入Dataflow叢集,在命令列中進行Flink作業提交。
基於YARN模式部署的Dataflow叢集支援以Session模式、Per-Job Cluster模式和Application模式提交Flink作業。
模式 | 描述 | 特點 |
Session模式 | Session模式會根據您設定的資源參數建立一個Flink叢集,所有作業都將被提交到這個叢集上運行。該叢集在作業運行結束之後不會自動釋放。 例如,某個作業發生異常,導致一個Task Manager關閉,則其他所有運行在該Task Manager上的作業都會失敗。另外由於同一個叢集中只有一個Job Manager,隨著作業數量的增多,Job Manager的壓力會相應增加。 |
根據以上特點,該模式適合部署需要較短啟動時間且已耗用時間相對較短的作業。 |
Per-Job Cluster模式 | 當使用Per-Job Cluster模式時,每次提交一個Flink作業,YARN都會為這個作業新啟動一個Flink叢集,然後運行該作業。當作業運行結束或者被取消時,該作業所屬的Flink叢集也會被釋放。 |
根據以上特點,該模式通常適合已耗用時間較長的作業。 |
Application模式 | 當使用Application模式時,每次提交一個Flink Application(一個Application包含一個或多個作業),YARN都會為這個Application新啟動一個Flink叢集。當Application運行結束或者被取消時,該Application所屬的Flink叢集也會被釋放。 該模式與Per-Job模式不同的是,Application對應的JAR包中的 如果提交的JAR包中包含多個作業,則這些作業都會在該Application所屬的叢集中執行。 |
|
前提條件
已建立Flink模式的Dataflow叢集,詳情請參見建立叢集。
提交並查看Flink作業
本文使用Flink自身提供的TopSpeedWindowing樣本進行介紹,該樣本是一個會長時間啟動並執行流作業。
您可以根據需求,選擇以下三種模式提交並查看作業:
Session模式
通過SSH方式串連叢集的Master節點,具體操作請參見登入叢集Master節點。
執行以下命令,啟動YARN Session。
yarn-session.sh --detached執行成功後,系統會返回Application ID。例如,
application_1750137174986_0001,後續將使用<application_XXXX_YY>表示。
執行以下命令,提交作業。
flink run --detached /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar提交成功後,系統會返回如下類似資訊。

其中
3785db18d371326758d7843dd2a1****為該作業ID,後續將使用<jobId>表示。執行以下命令,查看作業狀態。
flink list -t yarn-session -Dyarn.application.id=<application_XXXX_YY>返回如下類似資訊。
------------------ Running/Restarting Jobs ------------------- 16.06.2025 18:20:55 : 3785db18d371326758d7843dd2a1**** : CarTopSpeedWindowingExample (RUNNING)您也可以通過Web UI的方式查看作業狀態,詳情請參見通過Web UI查看作業狀態。
執行以下命令,停止作業。
flink cancel -t yarn-session -Dyarn.application.id=<application_XXXX_YY> <jobId>
Per-Job Cluster模式
通過SSH方式串連叢集的Master節點,具體操作請參見登入叢集Master節點。
執行以下命令,提交作業。
flink run -t yarn-per-job --detached /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar提交成功後,系統會返回如下類似資訊。

其中
application_1750125819948_****為Application ID,後續將使用<application_XXXX_YY>表示;f5f980ac631192b02548235f1bbe****為該作業ID,後續將使用<jobId>表示。您可以執行以下命令,查看作業狀態。
flink list -t yarn-per-job -Dyarn.application.id=<application_XXXX_YY>您也可以通過Web UI的方式查看作業狀態,詳情請參見通過Web UI查看作業狀態。
執行以下命令,停止作業。
flink cancel -t yarn-per-job -Dyarn.application.id=<application_XXXX_YY> <jobId>
Application模式
通過SSH方式串連叢集的Master節點,具體操作請參見登入叢集Master節點。
執行以下命令,提交作業。
flink run-application -t yarn-application /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar提交成功後,系統會返回如下類似資訊。

其中,
application_1750125819948_0004為已提交的Flink作業的YARN Application ID,後續將使用<application_XXXX_YY>表示。執行以下命令,查看作業狀態。
flink list -t yarn-application -Dyarn.application.id=<application_XXXX_YY>返回如下類似資訊,其中
4db32b5339e6d64de2a1096c4762****為該作業的<jobId>。------------------ Running/Restarting Jobs ------------------- 16.06.2025 18:20:55 : 4db32b5339e6d64de2a1096c4762**** : CarTopSpeedWindowingExample (RUNNING)您也可以通過Web UI的方式查看作業狀態,詳情請參見通過Web UI查看作業狀態。
執行以下命令,停止作業。
flink cancel -t yarn-application -Dyarn.application.id=<application_XXXX_YY> <jobId>
指定作業配置
Flink提供三種指定作業配置的方式:
方式一:在作業代碼中,指定配置項的值,詳情請查看Flink配置。
方式二:使用
flink run命令提交作業時,通過-D指定配置項的值,例如flink run-application -t yarn-application -D state.backend=rocksdb...。方式三:在
/etc/taihao-apps/flink-conf/flink-conf.yaml設定檔中指定配置項的值。
如果沒有通過這三種方式指定,則使用預設值,配置參數詳情請參見Apache Flink官網。
通過Web UI查看作業狀態
訪問Web UI。
在左側導覽列,選擇EMR on ECS。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
在EMR on ECS頁面,單擊目的地組群的叢集ID。
單擊上方的訪問連結與連接埠頁簽。
在訪問連結與連接埠頁面,單擊YARN UI所在行的連結。
訪問Web UI的詳細資料,請參見通過控制台訪問開源組件Web介面。
單擊Application ID。

單擊Tracking URL的連結。

進入Apache Flink Dashboard頁面,即可查看作業的狀態。

相關文檔
Flink on YARN的更多資訊,請參見Apache Hadoop YARN。