Настройка persistent-hdfs в Spark 2.0.0

Как правильно переключаться с эфемерных на постоянные hdfs в новом кластере Spark 2.0.0 (с поддержкой сценариев ec2)?

Это то, что я делаю:

/root/ephemeral-hdfs/sbin/stop-dfs.sh
/root/persistent-hdfs/sbin/start-dfs.sh

Затем в pyspark, когда я пытаюсь загрузить простой объект json из S3, я получаю эту ошибку:

>>> df = spark.read.json(s3path)
Traceback (most recent call last):                                              
  File "<stdin>", line 1, in <module>
  File "/root/spark/python/pyspark/sql/readwriter.py", line 220, in json
    return self._df(self._jreader.json(self._spark._sc._jvm.PythonUtils.toSeq(path)))
  File "/root/spark/python/lib/py4j-0.10.1-src.zip/py4j/java_gateway.py", line 933, in __call__
  File "/root/spark/python/pyspark/sql/utils.py", line 63, in deco
    return f(*a, **kw)
  File "/root/spark/python/lib/py4j-0.10.1-src.zip/py4j/protocol.py", line 312, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o34.json.
: java.lang.RuntimeException: java.net.ConnectException: Call From ip-172-31-44-104.ec2.internal/172.31.44.104 to ec2-54-162-71-31.compute-1.amazonaws.com:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

Ошибка говорит о том, что не удается найти класс java для работы с json. Ссылка, предложенная в сообщении об ошибке, гласит, что "общей причиной этого является то, что служба Hadoop не работает".

Поэтому я комментирую / добавляю следующие строки в spark/conf/spark-defaults.conf:

#spark.executor.extraLibraryPath  /root/ephemeral-hdfs/lib/native/
#spark.executor.extraClassPath  /root/ephemeral-hdfs/conf
spark.executor.extraLibraryPath /root/persistent-hdfs/lib/native/
spark.executor.extraClassPath /root/persistent-hdfs/conf

Ошибки сохраняются.

Я тоже пробовал sh spark/sbin/stop-all.sh а также sh spark/sbin/start-all.sh и все тот же результат.

Если я останавливаю persistent-hdfs и запускаю ephemeral-hdfs (и отменяю изменения в файле conf), все работает правильно, но записывается в ephemeral-hdfs.

Как это сделать правильно?

0 ответов

Другие вопросы по тегам