我想在我的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条答案
按热度按时间gywdnpxw1#
确保java目录(如路径中所示)和python解释器都位于没有空格的目录中。这就是我问题的原因。
rdlzhqv92#
在花了数小时尝试了许多不同的解决方案之后,我可以确认Java10SDK导致了这个错误。在mac上,请导航到/library/java/javavirtualmachines,然后运行此命令以完全卸载java jdk 10:
之后,请下载jdk8,问题就解决了。
lpwwtiir3#
如果您的机器中没有安装java,通常会发生这种情况。
转到命令提示符并检查java:type的版本:
java -version
你应该得到这样的东西java version "1.8.0_241" Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
如果没有,请转到orcale并下载jdk。查看这个视频,了解如何下载java并将其添加到buildpath。https://www.youtube.com/watch?v=f7rt0h1q5wo
zqry0prt4#
我也遇到了同样的异常,我通过设置和重置所有环境变量来尝试一切。但问题最终深入到了spark会话的appname属性中的空格处,即“sparksession.builder.appname(“streamingdemo”).getorcreate()”。从appname属性的字符串中删除空格后,它立即得到了解析。它对我有用。附上必需的屏幕截图。
9gm1akwq5#
这应该对你有帮助
一种解决方案是将pyspark shell添加到shell环境变量pyspark\u submit\u args中:
python/pyspark/java\u gateway.py中有一个更改,如果用户设置了pyspark\u submit\u args变量,则需要pyspark\u submit\u args包含pyspark shell。
r3i60tvu6#
对我来说,答案是在“file”->“project structure”->“modules”(在intellij中)中添加两个“content root”:
yourpath\spark-2.2.1-bin-hadoop2.7\python
yourpath\spark-2.2.1-bin-hadoop2.7\python\lib\py4j-0.10.4-src.zip
pzfprimi7#
在ubuntu上运行pyspark时,通过安装
openjdk-8-jdk
包裹安装open jdk 8:
在macos上
同样在mac os上,我输入了一个终端:
我被提示从oracle的下载站点安装java,选择macos安装程序,点击
jdk-13.0.2_osx-x64_bin.dmg
然后检查java是否安装了编辑以安装您需要转到的jdk 8https://www.oracle.com/java/technologies/javase-jdk8-downloads.html (需要登录)
在那之后,我可以用pyspark创建一个spark上下文。
检查是否有效
在python中:
请注意,您可能需要设置环境变量
PYSPARK_PYTHON
以及PYSPARK_DRIVER_PYTHON
它们必须是与运行pyspark(驱动程序)所用的python(或ipython)相同的python版本。qyzbxkaa8#
我得到这个错误是因为我的磁盘空间不足。
nvbavucw9#
我也一样
Exception: Java gateway process exited before sending the driver its port number
在cloudera vm中,尝试使用csv支持启动ipython时出现语法错误:PYSPARK_DRIVER_PYTHON=ipython pyspark --packages com.databricks:spark-csv_2.10.1.4.0
将抛出错误,而:PYSPARK_DRIVER_PYTHON=ipython pyspark --packages com.databricks:spark-csv_2.10:1.4.0
不会的。区别在于最后一个(工作)示例中的最后一个冒号,将scala版本号与包版本号分开。
wko9yo5t10#
我使用mac os。我解决了这个问题!
下面是我如何修复它。
jdk8似乎工作正常(https://github.com/jupyter/jupyter/issues/248)
所以我检查了我的jdk/library/java/javavirtualmachines,这个路径中只有jdk-11.jdk。
我下载了jdk8(我按照链接)。即:
在这之后,我补充道
到~/.bash\u配置文件(您需要检查您的jdk1.8文件名)
现在可以了!希望对您有所帮助:)
67up9zun11#
这是一个老线程,但我添加了我的解决方案,为那些谁使用mac。
问题出在
JAVA_HOME
. 你必须把这个包括在你的报告里.bash_profile
.检查您的
java -version
. 如果您下载了最新的java,但它没有显示为最新版本,那么您就知道路径是错误的。通常,默认路径是export JAVA_HOME= /usr/bin/java
.因此,请尝试将路径更改为:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
或者,您也可以下载最新的jdk。https://www.oracle.com/technetwork/java/javase/downloads/index.html 这将自动取代usr/bin/java
到最新版本。您可以通过执行java -version
再一次。那就行了。
ej83mcc012#
我在windows系统中解决了这个问题。java的安装目录的路径中不能有空格,例如
C:\Program Files
. 我在中重新安装了javaC\Java
. 我准备好了JAVA_HOME
至C:\Java
问题就消失了。vfwfrxfs13#
spark对您使用的java版本非常挑剔。强烈建议您使用Java1.8(开源的OpenJDK8也很好用)。安装后,设置
JAVA_HOME
对于bash变量,如果使用mac/linux:export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
export PATH=$JAVA_HOME/bin:$PATH
nfeuvbwi14#
在我的例子中,这个错误出现在以前运行良好的脚本中。所以我想这可能是因为我的java更新。在使用Java1.8之前,我不小心更新到了Java1.9。当我切换回Java1.8时,错误消失了,一切正常。对于那些因为同样的原因出现这个错误但不知道如何在ubuntu上切换回旧版本java的人:run
选择java版本
qpgpyjmq15#
同样的问题,安装java后使用下面的行解决了问题!