flink的main方法和execute方法的关系

背景:

执行flink时,我们几种执行模式,比如在IDE本地执行模式以及远程YARN执行的模式等,你是否有疑问,为什么他们可以共用相同的代码呢?其实这就涉及到main方法和execute方法的关系了

flink的main方法和execute方法的关系

flink的main方法其实主要目的是为了构造JobGraph图,这一步不论对于本地执行环境还是远程执行环境都是一样的,有区别的是创建的执行环境不一样:

创建本地执行环境:
StreamExecutionEnvironment.createLocalEnvironment()

创建远程执行环境:
StreamExecutionEnvironment.createRemoteEnvironment(
host, // 远程JobManager地址
port,  //远程JobManager端口
"jar path"  //应用代码类
)

也就是说不论是本地还是远程执行环境,main方法的第一个作用也就是构造JobGraph图是一样的,区别只在于构造完JobGraph之后,是提交到本地启动的JobManager线程执行还是提交到远程的JobManager进程执行
示意图如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink是一款流处理框架,基于Java开发,采用分布式数据流和批处理模型,可以处理大量实时数据和海量数据。在使用Flink运行任务的时候,需要使用flink run命令来启动Flink集群并提交作业。flink run命令可以接受多个参数来控制Flink运行时的各项参数。以下是flink run启动参数的说明: 1. -c, --class:指定要执行的类名。该参数用于跑特定的类的main方法,用于执行离线任务的特定类。 2. -p, --parallelism:指定任务的并行度。该参数用于指定每个算子的并行度,即每个算子的实例数。 3. -m, --jobmanager:指定JobManager的地址。该参数用于指定运行JobManager的主机名和端口号。 4. -t, --target:指定任务的执行目标,可选local或remote。local意味着任务将在本地执行,而remote意味着任务将在远程集群或者会话中执行。 5. -yn, --yarnname:指定在YARN上运行jars的应用程序名称。当我们在YARN中运行flink时,需要使用该参数指定应用程序的名称。 6. -s, --sysout:重定向标准输出流。这个参数可以将标准输出流重定向到本地文件系统中的一个文件。 7. -d, --detached:以后台模式启动任务,启动任务后会脱离当前终端会话。这个参数可以让Flink在后台运行,任务完成后可以退出终端操作,而不会停止Flink运行。 总之,flink run启动参数可以控制Flink任务的执行方式、性能和各项参数调优,更好地满足任务需求和用户要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值