开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink中yarn-application 模式 可以把多个任务提交到一个集群里吗 有没有提交命?

Flink中yarn-application 模式 可以把多个任务提交到一个集群里吗 有没有提交命令的样例可以参考下

展开
收起
真的很搞笑 2023-06-11 22:03:38 321 0
5 条回答
写回答
取消 提交回答
  • 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".
    

    ——参考链接

    2024-01-25 19:57:46
    赞同 1 展开评论 打赏
  • Flink的YARN Application模式允许将多个任务提交到一个集群中。在该模式下,你可以将Flink应用程序打包为一个YARN应用程序,并在YARN集群上运行。每个YARN应用程序可以在其自己的容器中运行,并且可以处理多个任务。

    在YARN Application模式下,你可以通过提交一个YARN应用程序来启动多个任务。提交操作将触发YARN集群管理器来启动和管理应用程序的生命周期。你可以使用Flink提供的命令行工具或API来提交YARN应用程序。

    要提交Flink YARN应用程序,你需要执行以下步骤:

    1. 打包Flink应用程序:使用适当的构建工具(如Maven或Gradle)将Flink应用程序打包为一个JAR文件。
    2. 配置YARN应用程序的属性:创建一个包含YARN应用程序属性的文件(如flink-conf.yaml),并将其放在JAR文件的conf目录下。
    3. 提交YARN应用程序:使用Flink提供的命令行工具或API,将JAR文件提交到YARN集群。例如,可以使用以下命令行:
    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版本和构建工具而有所不同。

    2024-01-25 18:40:00
    赞同 展开评论 打赏
  • 某政企事业单位安全运维工程师,主要从事系统运维及网络安全工作,多次获得阿里云、华为云、腾讯云征文比赛一二等奖;CTF选手,白帽,全国交通行业网络安全大赛二等奖,全国数信杯数据安全大赛银奖,手握多张EDU、CNVD、CNNVD证书,欧盟网络安全名人堂提名,联合国网络安全名人堂提名

    是的,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作业的参数。

    2024-01-19 15:51:32
    赞同 展开评论 打赏
  • 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进行通信,从而提交新的作业。
    image.png

    2024-01-15 15:25:01
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    Flink中的yarn-application模式可以支持将多个任务提交到一个集群中。在yarn-application模式下,Flink会启动一个独立的YARN应用,该应用包含一个JobManager和一个或多个TaskManager。你可以将多个任务提交到这个集群中,它们将共享同一个Flink应用。
    以下是一个提交多个任务的样例命令:

    $ flink run -c ...
    CopyCopy

    其中,是包含Flink应用程序主类的Java类,、、等是你要提交的任务名称,它们应该位于同一个目录中。在执行此命令时,Flink会将这些任务打包成一个YARN应用并提交到集群中。
    请注意,确保你的Flink应用程序已经配置了YARN资源管理器(ResourceManager)的地址,以便Flink能够正确地将任务提交到集群中。

    2024-01-12 21:45:01
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

    更多
    深度学习+大数据 TensorFlow on Yarn 立即下载
    Docker on Yarn 微服务实践 立即下载
    深度学习+大数据-TensorFlow on Yarn 立即下载