PyFlink 作業在 Yarn Application 上無法找到 Python 腳本的原因是什么?

pyflink作業在yarn application上找不到python腳本的排查指南

本文分析了PyFlink作業提交到Yarn Application時,找不到python腳本的常見問題,并提供了詳細的排查步驟。 問題表現為使用flink run-application命令提交PyFlink作業時,出現[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://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://nameservice1/pyflink/wc2.py路徑的準確性。使用HDFS命令行工具(例如hdfs dfs -ls)驗證該文件是否存在,并檢查路徑拼寫是否正確。

  2. 驗證Python解釋器路徑: 確認pyflink181.zip/pyflink181/bin/python路徑下的Python解釋器是否存在且可執行。 解壓pyflink181.zip文件,檢查bin/python是否存在,并嘗試手動執行該解釋器。

  3. 檢查文件權限: 確保Flink作業在Yarn上的運行用戶擁有訪問hdfs://nameservice1/pyflink/wc2.py文件的權限。使用HDFS命令行工具檢查文件權限,并根據需要修改權限。

  4. 檢查PyFlink和Flink版本兼容性: 確保使用的PyFlink版本與Flink版本兼容。查看PyFlink和Flink的官方文檔,確認版本匹配。不兼容的版本可能會導致此類問題。

  5. 檢查Yarn配置: 檢查Yarn的配置,特別是與Python相關的配置。 確保Yarn環境能夠正確地處理Python作業。這可能需要檢查Yarn的日志文件以查找更多線索。

  6. 檢查-Pyarch參數: 確保-Pyarch參數指向的PyFlink包路徑正確,并且該包包含必要的Python依賴項。

  7. 使用絕對路徑: 嘗試使用Python腳本的絕對HDFS路徑,而不是相對路徑,以排除任何路徑解析問題。

通過系統地檢查以上幾個方面,可以有效地定位并解決PyFlink作業在Yarn Application上找不到Python腳本的問題。 記住仔細檢查每個步驟,并記錄下你的發現,以便更好地理解問題根源。

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