当前位置: 首页 > 图灵资讯 > 技术篇> 使用PyFlink提交作业到Yarn Application时,为什么无法找到Python脚本?

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

来源:图灵教育
时间:2025-03-17 16:56:04

使用pyflink提交作业到yarn application时,为什么无法找到python脚本?

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

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

问题重现

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

./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://nameservice/pyflink/wc2.py': [errno 2] no such file or directory

Java作业成功提交:

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

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

    hdfs dfs -ls hdfs://nameservice/pyflink/wc2.py

  2. 检查权限: 确认Yarn Application操作用户有权读取Python脚本。

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

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

  5. 增强日志: 提高日志水平以获得更多的调试信息:

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

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

以上是使用PyFlink将作业提交给Yarn 为什么在Application时找不到Python脚本?详情请关注图灵教育的其他相关文章!