跟着黑马的大数据学习,在pyspark on yarn的时候莫名奇妙一直报错,如下:
23/10/24 16:08:53 WARN TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1) (node2 executor 2): java.io.IOException: Cannot run program "python3": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
。。。省略。。。
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 22 more
主要是找不到python3的问题,但是不使用yarn就没问题不会报错。
尝试过查到的改anaconda文件中python3.8的名字,以及在/etc/profile添加环境变量,可是都没有效果。
我突然想到,既然在程序在linux中自己找不到python3,我在程序中设置一下环境变量不就可以
import os
# 不同安装方法路径可能不同
os.environ['PYSPARK_PYTHON'] = '/export/server/anaconda3/envs/pyspark/bin/python3'
添加后运行成功,没有问题,可能只是个暂时的办法,但确实没报错。