Flink之前有很多历史任务,就是做数据打宽和打点的,这些任务默认采用就是 app mode 提交的到yarn里面的,那现在转到 docker 里面的话,这种任务默认是什么模式?说白了,就是 java -jar 默认使用的啥模式?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在将 Flink 任务从 YARN 的 Application 模式迁移到 Docker 容器中运行时,任务的提交模式会有所变化。以下是详细解答:
在 YARN 的 Application 模式下,每次提交一个 Flink 应用程序时,都会启动一个独立的 Flink 集群,该集群与应用程序生命周期绑定。这种模式适合包含多个作业的应用程序,资源隔离性较好。
当 Flink 任务迁移到 Docker 容器中运行时,默认的提交模式取决于容器化环境的配置和 Flink 的启动方式。通常情况下: - 如果直接使用 java -jar
命令运行 Flink 作业,则默认采用的是 Standalone 模式。 - 在 Standalone 模式下,Flink 作业运行在一个已经启动的 Flink 集群中,而不是像 YARN 的 Application 模式那样为每个作业单独启动集群。
在 Docker 容器中运行 Flink 任务时,常见的模式包括以下几种: - Session 模式:Flink 集群预先启动,多个作业共享同一个集群资源。这种方式类似于 YARN 的 Session 模式,适合短期作业。 - Per-Job 模式:每个作业启动一个独立的 Flink 集群,资源隔离性较好,但启动时间较长。 - Application 模式:类似于 YARN 的 Application 模式,每个应用程序启动一个独立的 Flink 集群。
如果使用 java -jar
命令直接运行 Flink 作业,且没有额外指定模式,则默认是 Standalone 模式,即作业运行在一个已经启动的 Flink 集群中。
要确认或修改 Flink 任务在 Docker 容器中的提交模式,可以通过以下方式: - 检查启动命令:查看是否通过 flink run
或其他命令指定了 -t
参数(如 -t yarn-application
或 -t yarn-per-job
)。 - 配置文件:检查 Flink 的配置文件(如 flink-conf.yaml
),确认是否有相关模式的配置。 - 容器编排工具:如果使用 Kubernetes 等容器编排工具,可以通过 Deployment 或 Job 配置文件确认 Flink 的运行模式。
在 Docker 容器中运行 Flink 任务时,如果使用 java -jar
命令直接运行,默认采用的是 Standalone 模式。如果需要其他模式(如 Per-Job 或 Application 模式),需要通过命令行参数或配置文件显式指定。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。