首页 > 文章列表 > 在使用PyFlink提交作业到Yarn Application时,无法找到Python脚本的原因可能有以下几种:脚本路径问题:确保你提供的Python脚本路径是正确的,并且该路径在Yarn集群的所有节点上都是可访问的。如果脚本位于本地文件系统,需要将其上传到HDFS或其他分布式文件系统,并使用相应的路径。依赖文件未上传:PyFlink作业可能依赖于其他Python文件或库。如果这些依赖文件没有正确上传到Yarn集群,作业将无法找到所需的脚本。可以通过--pyFiles参数指定依赖文件的路径。权限问题:确保

在使用PyFlink提交作业到Yarn Application时,无法找到Python脚本的原因可能有以下几种:脚本路径问题:确保你提供的Python脚本路径是正确的,并且该路径在Yarn集群的所有节点上都是可访问的。如果脚本位于本地文件系统,需要将其上传到HDFS或其他分布式文件系统,并使用相应的路径。依赖文件未上传:PyFlink作业可能依赖于其他Python文件或库。如果这些依赖文件没有正确上传到Yarn集群,作业将无法找到所需的脚本。可以通过--pyFiles参数指定依赖文件的路径。权限问题:确保

413 2025-04-08

使用PyFlink提交作业到Yarn Application时,为什么无法找到Python脚本?

PyFlink在Yarn Application中找不到Python脚本的排查指南

使用PyFlink将作业提交到Yarn Application时,经常会遇到找不到Python脚本的错误。本文分析一个具体案例,用户提交PyFlink作业时报错找不到wc2.py脚本。

问题重现

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

./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命令验证hdfs://nameservice1/pyflink/wc2.py是否存在且可访问:

    hdfs dfs -ls hdfs://nameservice1/pyflink/wc2.py
  2. 检查权限: 确认Yarn Application运行用户对该Python脚本拥有读取权限。

  3. Python环境验证: 仔细检查-pyclientexec-pyexec参数指定的Python解释器路径是否正确,并确保pyflink181.zip中的Python环境配置完整且有效。

  4. 版本兼容性: 确保PyFlink版本与Flink版本兼容。版本不兼容可能导致脚本无法正确加载。

  5. 增强日志: 提高日志级别以获取更多调试信息:

    ./flink run-application -t yarn-application 
    -Dlog4j.logger.org.apache.flink.client.python=DEBUG 
    # 其他参数...

通过以上步骤,可以系统地排查PyFlink作业在Yarn Application中找不到Python脚本的问题,并找到根本原因。 建议逐一检查,并根据日志信息进行更精细的排查。

来源:1742069770