apache spark"Py4JError:来自Java端的答案是空的"

Ale*_*tov 6 apache-spark

我每次都会收到这个错误......我用的是苏打水...我的conf-file:

***"spark.driver.memory 65g
spark.python.worker.memory 65g
spark.master local[*]"***
Run Code Online (Sandbox Code Playgroud)

数据量约为5 Gb.没有关于此错误的其他信息......有人知道它为什么会发生吗?谢谢!

***"ERROR:py4j.java_gateway:Error while sending or receiving.
Traceback (most recent call last):
  File "/data/analytics/Spark1.6.1/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py", line 746, in send_command
    raise Py4JError("Answer from Java side is empty")
Py4JError: Answer from Java side is empty
ERROR:py4j.java_gateway:An error occurred while trying to connect to the Java server
Traceback (most recent call last):
  File "/data/analytics/Spark1.6.1/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py", line 690, in start
    self.socket.connect((self.address, self.port))
  File "/usr/local/anaconda/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 111] Connection refused
ERROR:py4j.java_gateway:An error occurred while trying to connect to the Java server
Traceback (most recent call last):
  File "/data/analytics/Spark1.6.1/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py", line 690, in start
    self.socket.connect((self.address, self.port))
  File "/usr/local/anaconda/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 111] Connection refused
ERROR:py4j.java_gateway:An error occurred while trying to connect to the Java server
Traceback (most recent call last):
  File "/data/analytics/Spark1.6.1/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py", line 690, in start
    self.socket.connect((self.address, self.port))
  File "/usr/local/anaconda/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 111] Connection refused"***
Run Code Online (Sandbox Code Playgroud)

Ser*_*nko 8

通常,当 Java 进程被 OOM Killer 静默终止时,您会看到此错误。

OOM Killer(内存不足杀手)是一个 Linux 进程,当系统内存严重不足时就会启动。它根据“坏”分数选择一个进程并杀死它以回收内存。在这里阅读有关 OOM Killer 的更多信息。

在这种情况下,增加spark.executor.memory和/或spark.driver.memory值只会使事情变得更糟,即您可能想做相反的事情!

其他选择是:

  • 如果您正在使用非常大的数据源,请增加分区数量;
  • 增加工作节点数量;
  • 为工作/驱动节点添加更多物理内存;

或者,如果您使用 docker 运行驱动程序/工作人员:

  • 增加docker内存限制;
  • 设置--oom-kill-disable在容器上,但请确保您了解可能的后果!

在此处阅读有关--oom-kill-disabledocker 内存设置和其他 docker 内存设置的更多信息。


Nig*_* Ng 5

您是否尝试过在 Spark 配置文件中设置spark.executor.memory和?spark.driver.memory

有关更多信息,请参阅/sf/answers/1592008771/ 。