我想在我的MacBookAir上运行Pypark。当我试着启动它时,我得到一个错误:
Exception: Java gateway process exited before sending the driver its port number
启动时调用sc=sparkcontext()时。我已尝试运行以下命令:
./bin/pyspark
./bin/spark-shell
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"
无济于事。我也看过这里:
spark+python-java网关进程在向驱动程序发送端口号之前退出了吗?
但这个问题一直没有答案。请帮帮我!谢谢。
26条答案
按热度按时间zvms9eto16#
对我来说,是因为我写了
SPARK_DRIVER_MEMORY=10
而不是SPARK_DRIVER_MEMORY=10g
在spark-env.sh
rkue9o1l17#
如果您试图在没有hadoop二进制文件的情况下运行spark,可能会遇到上述错误。一种解决方案是:
1) 单独下载hadoop。
2) 将hadoop添加到您的路径
3) 将hadoop类路径添加到spark安装中
前两步很简单,最后一步最好在每个spark节点(master和worker)的$spark_home/conf/spark-env.sh中添加以下内容
有关更多信息,请查看:https://spark.apache.org/docs/latest/hadoop-provided.html
c0vxltue18#
我也有同样的错误。
我的故障排除程序是:
查看spark源代码。
遵循错误消息。就我而言:
pyspark/java_gateway.py
,第93行,inlaunch_gateway
.检查代码逻辑以找到根本原因,然后您将解决它。
在我的例子中,问题是pyspark没有创建临时目录的权限,所以我只是用sudo运行ide
yruzcnhs19#
我也一样
Java gateway process exited......port number
即使我设置了PYSPARK_SUBMIT_ARGS
适当地。我正在运行spark1.6并试图让pyspark与ipython4/jupyter(os:ubuntu作为vm客户机)一起工作。当我遇到这个异常时,我注意到生成了一个hs\u err.*.log,它的开头是:
There is insufficient memory for the Java Runtime Environment to continue. Native memory allocation (malloc) failed to allocate 715849728 bytes for committing reserved memory.
因此,我通过virtualbox设置增加了为我的ubuntu分配的内存,并重新启动了guest ubuntu。那么这个呢Java gateway
例外情况消失,一切顺利。nzrxty8p20#
我在pycharm中运行pyspark也有同样的错误。我通过在pycharm的环境变量中添加javahome解决了这个问题。
9ceoxa9221#
这个错误有很多原因。我的理由是:
sshcrbum22#
在这上面工作了好几个小时。我的问题是Java10的安装。我卸载了它并安装了java8,现在pyspark可以工作了。
5us2dqdw23#
一个可能的原因是没有设置javahome,因为没有安装java。
我也遇到了同样的问题。上面写着
在
sc = pyspark.SparkConf()
. 我通过跑步解决了这个问题是从哪来的https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04
gc0ot86w24#
我将在这里转述我是如何解决的,只是为了将来的参考。
我是如何解决类似的问题的
先决条件:
anaconda已经安装
spark已安装(https://spark.apache.org/downloads.html)
Pypark已安装(https://anaconda.org/conda-forge/pyspark)
步骤(注意:根据您的系统设置文件夹路径)
设置以下环境变量。
spark\u“c:\spark\spark-3.0.1-bin-hadoop2.7”的主页
将hadoop\u home设置为“c:\spark\spark-3.0.1-bin-hadoop2.7”
将pyspark\u driver\u python设置为“jupyter”
将pyspark\u driver\u python\u opts设置为“notebook”
添加“c:\spark\spark-3.0.1-bin-hadoop2.7\bin;”到path系统变量。
更改c下的java installed文件夹:(以前java是在ProgramFiles下安装的,所以我直接在c下重新安装:)
所以我的java\u主页将变成这样的“c:\java\jdk1.8.0\u271”
现在。真管用!
mftmpeh825#
我的ipython笔记本(ipython3.2.1)在linux(ubuntu)上也有同样的问题。
我的例子中缺少的是在$pyspark\u submit\u args环境中设置主url,如下所示(假设您使用bash):
例如
您可以将其放入.bashrc文件中。您在spark主机的日志中获得了正确的url(当您使用/sbin/start\u master.sh启动主机时,会报告此日志的位置)。
j2cgzkjk26#
对于linux(Ubuntu18.04)的java\主页问题,关键是将其指向主文件夹:
将java 8设置为默认值:
sudo update-alternatives --config java
. 如果未安装jave 8,请通过以下方式安装:sudo apt install openjdk-8-jdk
.套
JAVA_HOME
环境变量作为主Java8文件夹。位置由上面的第一个命令给出jre/bin/java
. 即:export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
. 如果在命令行上完成,这将只与当前会话相关(参考:linux上的export命令)。要验证:echo $JAVA_HOME
.为了永久地设置这个值,请在启动ide/jupyter/python解释器之前将上面的粗体行添加到运行的文件中。这可以通过将上面粗体的行添加到
.bashrc
. 当以交互方式启动bash时加载此文件ref:.bashrc