Spark 2.1-ошибка при создании экземпляра HiveSessionState
при новой установке Spark 2.1 я получаю ошибку при выполнении команды pyspark.
Traceback (most recent call last):
File "/usr/local/spark/python/pyspark/shell.py", line 43, in <module>
spark = SparkSession.builder
File "/usr/local/spark/python/pyspark/sql/session.py", line 179, in getOrCreate
session._jsparkSession.sessionState().conf().setConfString(key, value)
File "/usr/local/spark/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1133, in __call__
File "/usr/local/spark/python/pyspark/sql/utils.py", line 79, in deco
raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState':"
У меня Hadoop и Hive на одной машине. Куст настроен, чтобы использовать MySQL в качестве хранилища метаданных. Я не получил эту ошибку с Spark 2.0.2.
может кто-то пожалуйста, мне точку в правильном направлении?
7 ответов
у меня была та же проблема. Некоторые ответы sudo chmod -R 777 /tmp/hive/
, или понизить spark с hadoop до 2.6 не сработало для меня.
Я понял, что причиной этой проблемы для меня является то, что я выполнял SQL-запросы с использованием sqlContext вместо использования sparkSession.
sparkSession =SparkSession.builder.master("local[*]").appName("appName").config("spark.sql.warehouse.dir", "./spark-warehouse").getOrCreate()
sqlCtx.registerDataFrameAsTable(..)
df = sparkSession.sql("SELECT ...")
это прекрасно работает для меня сейчас.
Я получал ту же ошибку в среде windows, и ниже трюк работал для меня.
на shell.py
сеанс spark определяется с помощью .enableHiveSupport()
spark = SparkSession.builder\
.enableHiveSupport()\
.getOrCreate()
удалить поддержку улья и переопределить сеанс spark, как показано ниже:
spark = SparkSession.builder\
.getOrCreate()
вы можете найти shell.py
в папке установки spark.
для меня это в "C:\spark-2.1.1-bin-hadoop2.7\python\pyspark"
надеюсь, что это помогает
Spark 2.1.0-когда я запускаю его с опцией клиента yarn - я не вижу этой проблемы, но режим кластера yarn дает "ошибку при создании экземпляра" org.апаш.искра.язык SQL.улей.HiveSessionState':".
все еще ищу ответ.
проблема для меня была решена путем отключения HADOOP_CONF_DIR переменные среды. Он указывал на каталог конфигурации hadoop и при запуске pyspark
shell, переменная вызвала Искра инициировать кластер hadoop, который не был инициирован.
Так что если у вас есть HADOOP_CONF_DIR переменная включена, затем вам нужно запустить кластер hadoop перед использованием Искра снаряды
или вам нужно чтобы отключить переменную.
вам не хватает банки с искровым ульем.
например, если вы работаете на Scala 2.11, с Spark 2.1, вы можете использовать эту банку.
https://mvnrepository.com/artifact/org.apache.spark/spark-hive_2.11/2.1.0
Я видел эту ошибку на новом (2018) Mac, который пришел с Java 10. Исправить было установить JAVA_HOME
на Java 8:
export JAVA_HOME=`usr/libexec/java_home -v 1.8`
Я тоже боролся в кластерном режиме. Добавлен улей-сайт.xml из каталога sparkconf, если у вас есть кластер hdp, то он должен быть в /usr/hdp/current/spark2-client / conf. Это работает на меня.