使用PyFlink提交作業到Yarn Application時,為什么無法找到Python腳本?

使用PyFlink提交作業到Yarn Application時,為什么無法找到Python腳本?

Pyflinkyarn 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作業則成功:

立即學習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://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腳本的問題,并找到根本原因。 建議逐一檢查,并根據日志信息進行更精細的排查。

以上就是使用PyFlink提交作業到Yarn Application時,

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享