在ubantu成功安装配置spark等组件后,去pyspark编辑脚本运行,报出错误:Exception: Java gateway process exited before sending the driver its port number。
尝试了大神建议的很多方法都没有解决,如配置JAVA_HOME路径、重装Java版本1.8等等,还有人说用anaconda可以完美解决,但懒于下载配置,且个人感觉annaconda较卡顿,在虚拟机中更是无法忍受。
继续在bashrc中配置:
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell" source .bashrc 刷新
至此jupyter notebook 打开浏览器可以正常编辑运行脚本了。
有时想打开pyspark后直接打开jupyter,可以这样设置:
export PYSPARK_DRIVER_PYTHON=jupyter-notebook
export PYSPARK_DRIVER_PYTHON_OPTS=" --ip=0.0.0.0 --port=0" 注:IP主机地址与端口在spark启动日志里可以查看,然后填上。
source .bashrc 刷新
spark内置的python的版本是2的版本,现在我想把python的版本切换成3的版本,步骤如下:
1.修改spark-env.sh文件,在末尾添加export PYSPARK_PYTHON=/usr/bin/python3。
2.修改spark安装包bin目录下的pyspark,将原来PYSPARK_PYTHON=python改成PYSPARK_PYTHON=python3。
3、如果是集群其它子节点也都要修改。
4、重启,可见修改成功。
还有另外一种报错比较奇怪,在pyspark命令行运行没有问题,但在jupyter中运行就报错,如:
intRDD = sc.parallelize([3,1,2,5,5]) print (intRDD.take(1))
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe. : org.apache.spark.SparkException:。。。。。。。。。。。。。。
此时需要添加环境变量,指明pyspark依赖的python程序驱动路径:
export PYSPARK_DRIVER_PYTHON=/usr/bin/python3
export PYSPARK_PYTHON=/usr/bin/python3
具体路径根据安装目录确定,source后重启spark与jupyter。一切正常。