本文为您介绍如何在E-MapReduce上提交Flink作业以及查看作业。
背景信息
Dataflow集群中的Flink是以YARN模式部署的,在Dataflow集群中,您可以通过两种方式提交Flink作业:
- 通过控制台的数据开发进行提交。
提交Flink作业详情,请参见Flink(VVR)作业配置。
- 通过SSH方式登录Flink模式的Dataflow集群,在命令行中进行提交。
在基于YARN模式部署的Dataflow集群支持Session模式、Per-Job Cluster模式和Application模式。
模式 描述 特点 Session模式 Seesion模式会根据您设置的资源参数创建一个Flink集群,所有作业都将被提交到这个集群上运行。该集群在作业运行结束之后不会自动释放。 例如,某个作业发生异常,导致一个Task Manager关闭,则其他所有运行在该Task Manager上的作业都会失败。另外由于同一个集群中只有一个Job Manager,随着作业数量的增多,Job Manager的压力会相应增加。
- 优点:提交作业时,资源分配导致的时间开销相比其他模式较小。
- 缺点:由于所有作业都运行在该集群中,会存在对资源的竞争以及作业间的相互影响。
根据以上特点,该模式适合部署需要较短启动时间且运行时间相对较短的作业。
Per-Job Cluster模式 当使用Per-Job Cluster模式时,每次提交一个Flink作业,YARN都会为这个作业新启动一个Flink集群,然后运行该作业。当作业运行结束或者被取消时,该作业所属的Flink集群也会被释放。 - 优点:作业之间资源隔离,一个作业的异常行为不会影响到其他作业。
因为每个作业都和一个Job Manager一一对应,因此不会出现一个Job Manager因为运行多个Job而导致负载过高的问题。
- 缺点:每次运行一个作业都要启动一个专属Flink集群,启动作业的开销更大。
根据以上特点,该模式通常适合运行时间较长的作业。
Application模式 当使用Application模式时,每次提交一个Flink Application(一个Application包含一个或多个作业),YARN都会为这个Application新启动一个Flink集群。当Application运行结束或者被取消时,该Application所属的Flink集群也会被释放。 该模式与Per-Job模式不同的是,Application对应的JAR包中的main()方法会在集群中的Job Manager中被执行。
如果提交的JAR包中包含多个作业,则这些作业都会在该Application所属的集群中执行。
- 优点:可以减轻客户端提交作业时的负担。
- 缺点:每次运行一个Flink Application都要启动一个专属Flink集群,启动Application的时间开销会更大。
您可以根据需求,选择以下三种模式提交并查看作业:
前提条件
已创建Flink模式的Dataflow集群,详情请参见创建集群。
Session模式提交并查看作业
Per-Job Cluster模式提交并查看作业
Application模式提交并查看作业
通过Web UI查看作业状态
相关文档
Flink on YARN的更多信息,请参见Apache Hadoop YARN。