Flink中yarn-application 模式 可以把多个任务提交到一个集群里吗 有没有提交命令的样例可以参考下
Application 模式下,用户程序的 main 方法将在集群中而不是客户端运行,用户将程序逻辑和依赖打包进一个可执行的 jar 包里,集群的入口程序 (ApplicationClusterEntryPoint) 负责调用其中的 main 方法来生成 JobGraph。Application 模式为每个提交的应用程序创建一个集群,该集群可以看作是在特定应用程序的作业之间共享的会话集群,并在应用程序完成时终止。
可以把多个任务放在一个应用程序中。
application 模式使用 bin/flink run-application 提交作业;通过 -t 指定部署环境,目前 application 模式支持部署在 yarn 上(-t yarn-application) 和 k8s 上(-t kubernetes-application);并支持通过 -D 参数指定通用的 运行配置,比如 jobmanager/taskmanager 内存、checkpoint 时间间隔等。
Options for Generic CLI mode:
-D <property=value> Generic configuration options for
execution/deployment and for the configured executor.
The available options can be found at
https://ci.apache.org/projects/flink/flink-docs-stabl
e/ops/config.html
-e,--executor <arg> DEPRECATED: Please use the -t option instead which is
also available with the "Application Mode".
The name of the executor to be used for executing the
given job, which is equivalent to the
"execution.target" config option. The currently
available executors are: "collection", "remote",
"local", "kubernetes-session", "yarn-per-job",
"yarn-session".
-t,--target <arg> The deployment target for the given application,
which is equivalent to the "execution.target" config
option. The currently available targets are:
"collection", "remote", "local",
"kubernetes-session", "yarn-per-job", "yarn-session",
"yarn-application" and "kubernetes-application".
——参考链接。
Flink的YARN Application模式允许将多个任务提交到一个集群中。在该模式下,你可以将Flink应用程序打包为一个YARN应用程序,并在YARN集群上运行。每个YARN应用程序可以在其自己的容器中运行,并且可以处理多个任务。
在YARN Application模式下,你可以通过提交一个YARN应用程序来启动多个任务。提交操作将触发YARN集群管理器来启动和管理应用程序的生命周期。你可以使用Flink提供的命令行工具或API来提交YARN应用程序。
要提交Flink YARN应用程序,你需要执行以下步骤:
flink-conf.yaml
),并将其放在JAR文件的conf
目录下。flink run -m yarn-cluster -yjm <jobManagerMemory> -ytm <taskManagerMemory> -ynm <YarnAppName> <jarFilePath>
其中,<jobManagerMemory>
和<taskManagerMemory>
是JobManager和TaskManager的内存配置,<YarnAppName>
是YARN应用程序的名称,<jarFilePath>
是包含Flink应用程序的JAR文件的路径。
提交后,YARN集群管理器将负责启动和管理Flink应用程序的生命周期。你可以使用Flink提供的监控工具来监视应用程序的状态和性能指标。
请注意,具体的命令行参数可能会因Flink版本和构建工具而有所不同。
是的,Flink中可以使用yarn-application模式将多个任务提交到一个集群中运行。下面是一个示例提交命令供参考:
flink run -m yarn-cluster -yn 2 -ys 2 -yjm 1024 -ytm 2048 -c com.example.YourMainClass /path/to/your/flink-job.jar --job-args
解释一下各个参数的含义:
-m:指定运行模式为yarn-cluster。
-yn:指定要启动的TaskManager数目。
-ys:指定每个TaskManager的slot数目。
-yjm:指定Yarn的JobManager内存大小(以MB为单位)。
-ytm:指定每个Yarn TaskManager的内存大小(以MB为单位)。
-c:指定要执行的主类。
/path/to/your/flink-job.jar:指定Flink作业的jar包路径。
--job-args:指定Flink作业的参数。
Apache Flink 在 YARN 上运行时,application
模式允许用户以多任务共享资源的方式运行一系列作业,而不必为每个作业单独启动一个新的 Flink 会话。在这种模式下,一个 Flink Application Master(AM)将会被启动,然后它可以接受多个作业提交请求并在同一个应用程序生命周期内调度和执行这些作业。
以下是一个简单的命令行示例,说明如何在 YARN 上以 application
模式提交 Flink 作业:
./bin/flink run-application -t yarn-application \
-Dexecution.runtime-mode=cluster \
-ynm myFlinkApp \
-ys 2 -ytm 1024m -yjm 512m \
/path/to/your/job.jar
这里 -t yarn-application
表示使用 YARN 应用程序模式。-ynm
是指定 YARN 应用程序的名称,-ys
、-ytm
和 -yjm
分别代表 YARN 容器的slot数量、task manager 内存和job manager 内存。/path/to/your/job.jar
是指向你要提交的 Flink 作业 JAR 包的路径。
在 application
模式下,提交第二个及后续作业不需要再次启动 Flink AM,可以直接提交到已存在的 Flink 应用中,但这通常需要通过编程方式或交互式 Shell 来完成,而不是单纯的命令行一次性提交。
请参考 Flink 官方文档或最新的命令行帮助文档以获取最新和最准确的命令选项,因为随着 Flink 版本的更新,命令行参数可能会有所变动或新增功能。为了能够在同一 Flink Application 内提交多个作业,你可能需要额外的接口或API调用来实现这一目标。例如,通过Flink的REST API或者通过YARN客户端API与已经运行的Flink Application Master进行通信,从而提交新的作业。
Flink中的yarn-application模式可以支持将多个任务提交到一个集群中。在yarn-application模式下,Flink会启动一个独立的YARN应用,该应用包含一个JobManager和一个或多个TaskManager。你可以将多个任务提交到这个集群中,它们将共享同一个Flink应用。
以下是一个提交多个任务的样例命令:
$ flink run -c ...
CopyCopy
其中,是包含Flink应用程序主类的Java类,、、等是你要提交的任务名称,它们应该位于同一个目录中。在执行此命令时,Flink会将这些任务打包成一个YARN应用并提交到集群中。
请注意,确保你的Flink应用程序已经配置了YARN资源管理器(ResourceManager)的地址,以便Flink能够正确地将任务提交到集群中。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。