Я пытаюсь выполнить простой запрос select count(*) from table
в Hive, но он завершается неудачей со следующей ошибкой:
FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create Spark client for Spark session 5414a8a4-5252-4ccf-b63e-2ee563f7d772_0: java.lang.ClassNotFoundException: org.apache.spark.SparkConf
Это происходит с тех пор, как я перешел на CDH 6.2 и включил Spark (версия 2.4.0-cdh6.2.0) в качестве механизма исполнения Hive (версия 2.1.1-cdh6.2.0).
Я предполагаю, что Hive неправильно настроен для запуска Spark. Я попытался установить для свойства spark.home
hive-site.xml
значение /opt/cloudera/parcels/CDH/lib/spark/
и установить для переменной среды SPARK_HOME
то же значение, но это не имело значения.
Об аналогичной проблеме сообщалось здесь , но решение (т. Е. Поместить файл spark-assembly.jar
в каталог lib
Hive) не может быть применено (так как файл больше не встроен в последнюю версию Spark). версии).
Предыдущий вопрос касался аналогичной, но другой проблемы, связанной с ограничением памяти на YARN.
Кроме того, переключение на MapReduce из-за сбоя механизма выполнения, но с другой ошибкой:
FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. org/apache/hadoop/hdfs/protocol/SystemErasureCodingPolicies
Поиск последней ошибки в Google не дает никакого результата.
ОБНОВЛЕНИЕ: я обнаружил, что запросы работают при подключении к Hive с помощью других инструментов (например, Beeline, Hue, Spark) и независимо от базового механизма выполнения (например, MapReduce или Spark). Таким образом, ошибка может находиться в интерфейсе командной строки Hive, который в настоящее время устарел.
ОБНОВЛЕНИЕ 2: та же самая проблема фактически произошла на Beeline и Hue с запросом CREATE TABLE; Я смог выполнить это только с помощью интерпретатора Hive Zeppelin