本文为您介绍如何在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。

