当前位置: 首页 > 知识库问答 >
问题:

Java错误Java网关进程在发送其端口号之前退出

澹台阳秋
2023-03-14

我在python环境中使用了pip安装pyspark,安装了java,但是当我尝试初始化spark会话时,我得到了一个java错误,java网关进程在发送端口号之前退出

spark = SparkSession \
    .builder \
    .appName("CustomerChurn") \
    .master("local") \
    .config() \
    .getOrCreate()





RuntimeError                              Traceback (most recent call last)
Input In [3], in <cell line: 3>()
      1 findspark.init()
      3 spark = SparkSession \
      4     .builder \
      5     .appName("CustomerChurn") \
      6     .master("local") \
      7     .config() \
----> 8     .getOrCreate()

File ~\anaconda3\envs\CustomerChurnProject\lib\site-packages\pyspark\sql\session.py:269, in SparkSession.Builder.getOrCreate(self)
    267     sparkConf.set(key, value)
    268 # This SparkContext may be an existing one.
--> 269 sc = SparkContext.getOrCreate(sparkConf)
    270 # Do not update `SparkConf` for existing `SparkContext`, as it's shared
    271 # by all sessions.
    272 session = SparkSession(sc, options=self._options)

File ~\anaconda3\envs\CustomerChurnProject\lib\site-packages\pyspark\context.py:483, in SparkContext.getOrCreate(cls, conf)
    481 with SparkContext._lock:
    482     if SparkContext._active_spark_context is None:
--> 483         SparkContext(conf=conf or SparkConf())
    484     assert SparkContext._active_spark_context is not None
    485     return SparkContext._active_spark_context

File ~\anaconda3\envs\CustomerChurnProject\lib\site-packages\pyspark\context.py:195, in SparkContext.__init__(self, master, appName, sparkHome, pyFiles, environment, batchSize, serializer, conf, gateway, jsc, profiler_cls, udf_profiler_cls)
    189 if gateway is not None and gateway.gateway_parameters.auth_token is None:
    190     raise ValueError(
    191         "You are trying to pass an insecure Py4j gateway to Spark. This"
    192         " is not allowed as it is a security risk."
    193     )
--> 195 SparkContext._ensure_initialized(self, gateway=gateway, conf=conf)
    196 try:
    197     self._do_init(
    198         master,
    199         appName,
   (...)
    208         udf_profiler_cls,
    209     )

File ~\anaconda3\envs\CustomerChurnProject\lib\site-packages\pyspark\context.py:417, in SparkContext._ensure_initialized(cls, instance, gateway, conf)
    415 with SparkContext._lock:
    416     if not SparkContext._gateway:
--> 417         SparkContext._gateway = gateway or launch_gateway(conf)
    418         SparkContext._jvm = SparkContext._gateway.jvm
    420     if instance:

File ~\anaconda3\envs\CustomerChurnProject\lib\site-packages\pyspark\java_gateway.py:106, in launch_gateway(conf, popen_kwargs)
    103     time.sleep(0.1)
    105 if not os.path.isfile(conn_info_file):
--> 106     raise RuntimeError("Java gateway process exited before sending its port number")
    108 with open(conn_info_file, "rb") as info:
    109     gateway_port = read_int(info)

RuntimeError: Java gateway process exited before sending its port number

运行时错误发布在上面,我在其他帖子中没有看到这种类型的错误

共有1个答案

公孙宸
2023-03-14

根据错误日志,我认为需要在系统上指定$JAVA\u HOME变量。

此链接可能有助于:

https://sparkbyexamples.com/pyspark/pyspark-exception-java-gateway-process-exited-before-sending-the-driver-its-port-number/

在Linux中:

export JAVA\u HOME=(JDK的路径,e.x:/usr/lib/jvm/JAVA-11-openjdk-amd64)

之后,您需要将其保存在您的~/. bashrc中(如果您使用bash)

vi ~/.bashrc
export JAVA_HOME=(Path to the JDK, e.x: /usr/lib/jvm/java-11-openjdk-amd64)

然后:

source ~/.bashrc

(你可以看到上面的链接)

在窗口中:

转到我的计算机上的编辑系统环境窗口。

看这个:https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.html

 类似资料:
  • 我正在使用Pyspark运行一些命令在Jupyter笔记本,但它是抛出错误。我尝试了这个链接中提供的解决方案(pyspark:exception:Java gateway process在发送驱动程序端口号之前退出),并且尝试了这里提供的解决方案(比如将路径更改为c:Java、卸载Java SDK 10和重新安装Java8,但它仍然给我带来了同样的错误。 我试着卸载和重新安装pyspark,我试着

  • 尝试使用时我遇到了一个问题。我在我的用户路径中安装并添加了。但根据文档,它不需要任何其他依赖项。 我的问题是,我必须安装其他东西吗?像Spark本身或类似的东西? 我在中使用。

  • 我在Spark 3.1.2和Hadoop 2.7中面临两个错误: 第一个是在python中导入'pyspark'并创建一个会话。 错误:'Java网关进程在发送端口号前已退出‘ 我从GitHub上的存储库中为以下Hadoop版本下载了它们:[2.7.1,2.7.7] 试过了,都不起作用。 我的环境变量--就我所检查的而言--是正确的: Windows 10 Python:3.7.10 水蟒:4.1

  • 我正试图用Anaconda在我的Windows10中安装Spark,但当我试图在JupyterNotebook中运行pyspark时,我遇到了一个错误。我正在遵循本教程中的步骤。然后,我已经下载了Java8并安装了Spark 3.0.0和Hadoop 2.7。 我已经为SPARK_HOME、JAVA_HOME设置了路径,并在“path”环境中包含了“/bin”路径。 在Anaconda pyspa

  • 代码在下面 获取错误异常:Java网关进程在发送其端口号之前退出

  • 我运行Windows10,并通过Anaconda3安装了Python3。我在用Jupyter笔记本。我从这里安装了Spark(Spark-2.3.0-bin-Hadoop2.7.tgz)。我已经解压缩了这些文件,并将它们粘贴到我的目录d:\spark中。我已经修改了环境变量: 用户变量: 变量:SPARK_HOME 值:D:\spark\bin 我已经通过conda安装/更新了以下模块: 熊猫 皮