flink提交PyFlink作業(yè)到yarn時找不到python腳本的解決方案
在使用Flink提交PyFlink作業(yè)到Y(jié)arn時,如果遇到找不到python腳本的錯誤,通常是由于Python腳本路徑配置錯誤或Python環(huán)境設(shè)置問題導(dǎo)致的。本文將分析并解決此問題。
您使用了以下命令提交PyFlink作業(yè):
./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
該錯誤表明Flink找不到指定的Python腳本wc2.py。然而,提交Java作業(yè)時HDFS配置正常,說明HDFS配置本身沒有問題。
立即學(xué)習(xí)“Python免費學(xué)習(xí)筆記(深入)”;
問題可能出在以下幾個方面:
-
Python腳本路徑: 仔細(xì)檢查hdfs://nameservice1/pyflink/wc2.py路徑是否正確,以及wc2.py文件是否存在于該路徑下。使用HDFS命令驗證:
hdfs dfs -ls hdfs://nameservice1/pyflink/wc2.py
-
Python環(huán)境配置: -pyclientexec和-pyexec參數(shù)指定了Python執(zhí)行環(huán)境。確保pyflink181.zip中的Python環(huán)境配置正確,并且可以訪問HDFS。建議將參數(shù)直接指向HDFS上的Python環(huán)境路徑:
-pyclientexec hdfs://nameservice1/pyflink/pyflink181.zip/pyflink181/bin/python -pyexec hdfs://nameservice1/pyflink/pyflink181.zip/pyflink181/bin/python
-
權(quán)限問題: 確保Flink作業(yè)具有訪問HDFS上Python腳本文件的權(quán)限。檢查文件權(quán)限:
hdfs dfs -ls -h hdfs://nameservice1/pyflink/wc2.py
-
Flink和PyFlink版本兼容性: 確認(rèn)Flink版本與PyFlink版本兼容。版本不匹配可能導(dǎo)致問題。
通過以上步驟排查,您應(yīng)該能夠找到并解決Flink提交PyFlink作業(yè)時找不到Python腳本的問題。如果問題仍然存在,請檢查Flink和PyFlink的日志文件,尋找更多線索。