flink on yarn 环境,当任务程序包和配置文件目录config分离,并上传到HDFS时,应该怎么启动任务程序?
在Flink on Yarn环境中,如果任务程序包和配置文件目录config分离并上传到HDFS,您可以使用以下命令来启动任务程序:./bin/flink run -m yarn-cluster -ynm myjobname -yjm 1024 -yrc hdfs://<path-to-hdfs/config/config.yaml -py yourprogram.py
。其中,hdfs://path-to-hdfs/config/config.yaml
是存放在HDFS上的配置文件路径。
此外,为了确保Flink作业的高可用性,您可以考虑配置Flink集群HA(High Availability)。默认情况下,Flink只有一个JobManager,这可能导致单点故障。通过配置JobManager HA,您的集群可以从单点故障中恢复,从而避免系统中断。
还需要注意,Flink提供了两种在Yarn上运行的模式:Session-Cluster和Per-Job-Cluster。Session-Cluster模式需要先启动集群,然后再提交作业。而Per-Job-Cluster模式是为每个作业单独启动一个Flink集群。根据您的需求和资源情况,选择合适的运行模式。
最后,确保您的Yarn集群配置正确,并且与Flink版本兼容。例如,Zookeeper, HDFS 和 Yarn的版本需要与Flink版本匹配。同时,检查Yarn的配置,如虚拟内存检查设置,以确保Flink作业在Yarn上正常运行。
在 Flink on YARN 环境中,如果你将任务程序包和配置文件目录分离,并上传到 HDFS,你可以通过以下步骤来启动任务程序:
将任务程序包和配置文件上传到 HDFS 上的指定目录。确保你已经将任务程序包和配置文件正确地上传到了 HDFS,并且你知道它们在 HDFS 上的路径。
使用 yarn-session.sh
脚本启动 Flink 会话。在启动脚本时,需要指定以下参数:
-t yarn-per-job
:指定 Flink on YARN 的执行模式为 "yarn-per-job"。-n <number-of-taskmanagers>
:指定 TaskManager 的数量。-jm <jobmanager-memory>
:指定 JobManager 的内存大小。-tm <taskmanager-memory>
:指定每个 TaskManager 的内存大小。-d
:启用后台模式运行。-j <path-to-job-jar>
:指定任务程序包在 HDFS 上的路径。-c <fully-qualified-classname>
:指定任务程序的入口类。-yD <key=value>
:设置任务程序的配置项。例如,-yD fs.hdfs.hadoopconf=/etc/hadoop
可以设置 Hadoop 配置文件的路径。以下是一个示例的启动命令:
./bin/yarn-session.sh -t yarn-per-job -n 2 -jm 1024m -tm 2048m -d -j hdfs:///path/to/job.jar -c com.example.MyJob -yD fs.hdfs.hadoopconf=/etc/hadoop
注意替换 <number-of-taskmanagers>
、<jobmanager-memory>
、<taskmanager-memory>
、<path-to-job-jar>
和 <fully-qualified-classname>
为实际的值。
Flink 会话启动后,它将自动从 HDFS 上加载任务程序包和配置文件。任务程序将在 Flink on YARN 上执行。
通过以上步骤,你可以在 Flink on YARN 环境中成功启动任务程序,并使用分离的任务程序包和配置文件。确保在启动脚本中正确指定 HDFS 上的路径,并提供正确的参数和配置项。
在Flink on yarn环境中,如果任务程序包和配置文件目录config分离并上传到HDFS,您可以按照以下步骤启动任务程序:
在Flink On Yarn模式下,Yarn的资源可以按需使用,提高集群的资源利用率。此外,Yarn的任务有优先级,可以根据优先级运行作业。基于Yarn调度系统,能够自动化地处理各个角色的Failover。
config文件也上传到hdfs,程序包从hdfs读配置文件。用ParameterTool来获取传入的配置文件路径,然后使用Hadoop的FileSystem API来读HDFS上的配置文件。此回答整理自钉群“实时计算Flink产品交流群”
当任务程序包和配置文件目录config分离,并上传到HDFS时,可以通过以下命令在Flink on Yarn环境中启动任务程序:
./bin/flink run -m yarn-cluster -ynm myjobname -yjm 1024 -yrc config/config.yaml -py yourprogram.py
其中,config/config.yaml
是配置文件的路径,yourprogram.py
是任务程序的路径。-ynm
选项用于指定YARN应用程序的名称,-yjm
选项用于指定YARN应用程序的JVM堆大小,-yrc
选项用于指定配置文件的路径。
注意,这个命令假设你已经将任务程序和配置文件上传到了HDFS,并且Flink on Yarn客户端可以访问这些文件。如果你的HDFS目录结构和上述命令中的不同,你可能需要修改config/config.yaml
文件中的相关路径。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。