PyFlink 作业在 Yarn Application 上无法找到 Python 脚本的原因是什么?

pyflink作业在yarn application上找不到python脚本的排查指南

本文分析了PyFlink作业提交到Yarn Application时,找不到python脚本的常见问题,并提供了详细的排查步骤。 问题表现为使用flink run-application命令提交PyFlink作业时,出现[errno 2] no such file or Directory错误,提示找不到python脚本

PyFlink 作业在 Yarn Application 上无法找到 Python 脚本的原因是什么?

问题重现:

用户使用以下命令提交PyFlink作业:

立即学习Python免费学习笔记(深入)”;

./flink run-application -t yarn-application  -Dyarn.application.name=flinkcdctestpython  -Dyarn.provided.lib.dirs="hdfs://nameservice1/pyflink/flink-dist-181"  -Pyarch hdfs://nameservice1/pyflink/pyflink181.zip  -Pyclientexec pyflink181.zip/pyflink181/bin/python  -Pyexec pyflink181.zip/pyflink181/bin/python  -Py hdfs://nameservice1/pyflink/wc2.py

结果报错:

2024-05-24 16:38:02,030 info org.apache.flink.client.python.pythondriver [] - pyflink181.zip/pyflink181/bin/python: can't open file 'hdfs://nameservice1/pyflink/wc2.py': [errno 2] no such file or directory

而提交Java作业则成功:

./flink run-application -t yarn-application  -Djobmanager.memory.process.size=1024m  -Dtaskmanager.memory.process.size=1024m  -Dyarn.application.name=flinkcdctest  -Dyarn.provided.lib.dirs="hdfs://nameservice1/pyflink/flink-dist-181"  hdfs://nameservice1/pyflink/StateMachineExample.jar

这说明HDFS配置本身没有问题。

排查步骤:

  1. 验证Python脚本路径: 仔细检查hdfs://nameservice1/pyflink/wc2.py路径的准确性。使用HDFS命令行工具(例如hdfs dfs -ls)验证该文件是否存在,并检查路径拼写是否正确。

  2. 验证Python解释器路径: 确认pyflink181.zip/pyflink181/bin/python路径下的Python解释器是否存在且可执行。 解压pyflink181.zip文件,检查bin/python是否存在,并尝试手动执行该解释器。

  3. 检查文件权限: 确保Flink作业在Yarn上的运行用户拥有访问hdfs://nameservice1/pyflink/wc2.py文件的权限。使用HDFS命令行工具检查文件权限,并根据需要修改权限。

  4. 检查PyFlink和Flink版本兼容性: 确保使用的PyFlink版本与Flink版本兼容。查看PyFlink和Flink的官方文档,确认版本匹配。不兼容的版本可能会导致此类问题。

  5. 检查Yarn配置: 检查Yarn的配置,特别是与Python相关的配置。 确保Yarn环境能够正确地处理Python作业。这可能需要检查Yarn的日志文件以查找更多线索。

  6. 检查-Pyarch参数: 确保-Pyarch参数指向的PyFlink包路径正确,并且该包包含必要的Python依赖项。

  7. 使用绝对路径: 尝试使用Python脚本的绝对HDFS路径,而不是相对路径,以排除任何路径解析问题。

通过系统地检查以上几个方面,可以有效地定位并解决PyFlink作业在Yarn Application上找不到Python脚本的问题。 记住仔细检查每个步骤,并记录下你的发现,以便更好地理解问题根源。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享