pyflink作业在yarnn python脚本的排查指南在aplication上找不到
本文分析了PyFlink作业提交给Yarn Python脚本的常见问题在Application中找不到,并提供了详细的调查步骤。 问题的表现是使用flink run-提交PyFlink作业时,application命令出现[errno 2] no such file or directory错误,提示找不到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配置本身没有问题。
排查步骤:
-
验证Python脚本路径: 仔细检查hdfs://nameservice/pyflink/wc2.py路径的准确性。使用HDFS命令行工具(如HDFS) dfs -ls)验证文件是否存在,并检查路径拼写是否正确。
-
验证Python解释器路径: 确认pyflink181.zip/pyflink181/binPython解释器在python路径下是否存在并可执行。 解压pyflink181.zip文件,检查bin/python是否存在,并尝试手动执行解释器。
-
检查文件的权限: 确保Flink操作在Yarn上的操作用户有访问hdfs://nameservice/pyflink/wc2.py文件的权限。使用HDFS命令行工具检查文件权限,并根据需要修改权限。
-
检查PyFlink和Flink版本的兼容性: 确保PyFlink版本与Flink版本兼容。查看PyFlink和Flink的官方文件,确认版本匹配。不兼容的版本可能会导致这样的问题。
-
检查Yarn配置: 检查Yarn的配置,特别是与Python相关的配置。 确保Yarn环境能够正确处理Python作业。为了找到更多的线索,可能需要检查Yarn的日志文件。
-
检查-Pyarch参数: 包括必要的Python依赖项,确保Pyarch参数指向的PyFlink包路径正确。
-
使用绝对路径: 为了消除任何路径分析问题,尝试使用Python脚本的绝对HDFS路径,而不是相对路径。
通过对上述方面的系统检查,可以有效地定位和解决Yarnnk中PyFlink作业的问题 Python脚本在Application上找不到。 记住仔细检查每一步,并记录下你的发现,以便更好地理解问题的根源。
以上是PyFlink 作业在 Yarn Application 上无法找到 Python 脚本的原因是什么?详情请关注图灵教育的其他相关文章!
