Apache Ошибка искры при работе в кластере: py4j.protocol.Py4JNetworkError: Ответ со стороны Java пуст - PullRequest
0 голосов
/ 18 апреля 2020

Мой код работает нормально, когда я запускаю искру локально. Но когда я запускаю Spark в кластере, я получаю следующую ошибку:

ERROR:root:Exception while sending command.
Traceback (most recent call last):
  File "/opt/apache-spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1159, in send_command
    raise Py4JNetworkError("Answer from Java side is empty")
py4j.protocol.Py4JNetworkError: Answer from Java side is empty

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/apache-spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 985, in send_command
    response = connection.send_command(command)
  File "/opt/apache-spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1164, in send_command
    "Error while receiving", e, proto.ERROR_ON_RECEIVE)
py4j.protocol.Py4JNetworkError: Error while receiving
---------------------------------------------------------------------------
Py4JError                                 Traceback (most recent call last)
<ipython-input-3-683c6d57f477> in <module>
----> 1 raw_data = spark.read.format('csv').option('header','true').option('inferSchema', 'true').load('training_mod.csv')
      2 raw_data.columns

/opt/apache-spark/python/pyspark/sql/readwriter.py in load(self, path, format, schema, **options)
    164         self.options(**options)
    165         if isinstance(path, basestring):
--> 166             return self._df(self._jreader.load(path))
    167         elif path is not None:
    168             if type(path) != list:

/opt/apache-spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py in __call__(self, *args)
   1255         answer = self.gateway_client.send_command(command)
   1256         return_value = get_return_value(
-> 1257             answer, self.gateway_client, self.target_id, self.name)
   1258 
   1259         for temp_arg in temp_args:

/opt/apache-spark/python/pyspark/sql/utils.py in deco(*a, **kw)
     61     def deco(*a, **kw):
     62         try:
---> 63             return f(*a, **kw)
     64         except py4j.protocol.Py4JJavaError as e:
     65             s = e.java_exception.toString()

/opt/apache-spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
    334             raise Py4JError(
    335                 "An error occurred while calling {0}{1}{2}".
--> 336                 format(target_id, ".", name))
    337     else:
    338         type = answer[1]

Py4JError: An error occurred while calling o52.load

Я чувствую, что проблема заключается в конфигурации Spark. Конфигурация выглядит следующим образом:

spark.master                         spark://192.168.56.200:7077
spark.executor.memory                1g
spark.serializer                     org.apache.spark.serializer.KryoSerializer
spark.driver.cores                   2
spark.driver.memory                  3g
spark.executor.cores                 1
spark.cores.max                      3
spark.dynamicAllocation.enabled      false
spark.shuffle.service.enabled        false
spark.app.name                       Logistic Regression

Информация о кластере:

У меня есть три рабочих узла (я также добавил master как рабочий). Два работника имеют 2 ГБ памяти, а мастер имеет 1 ГБ памяти.

Что-то не так с моей конфигурацией или я должен искать в другом месте?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...