当前位置: 首页 > 图灵资讯 > 技术篇> PyFlink 作业在 Yarn Application 上无法找到 Python 脚本的原因是什么?

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

来源:图灵教育
时间:2025-03-16 16:50:00

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

本文分析了PyFlink作业提交给Yarn Python脚本的常见问题在Application中找不到,并提供了详细的调查步骤。 问题的表现是使用flink run-提交PyFlink作业时,application命令出现[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://nameservice/pyflink/flink-dist-181" \
-Pyarch hdfs://nameservice/pyflink/pyflink181.zip \
-Pyclientexec pyflink181.zip/pyflink181/bin/python \
-Pyexec pyflink181.zip/pyflink181/bin/python \
-Py hdfs://nameservice/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://nameservice/pyflink/flink-dist-181" \
hdfs://nameservice/pyflink/StateMachineExample.jar

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

排查步骤:

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

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

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

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

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

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

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

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

以上是PyFlink 作业在 Yarn Application 上无法找到 Python 脚本的原因是什么?详情请关注图灵教育的其他相关文章!