Это четкое указание на несоответствия библиотеки jar-файлов scala, которые используются в кустах, поскольку вы используете несовместимые изменения scala для улья с опцией spark.работает нормально.spark использует scala в качестве lang и не может найти правильную версию.Вот почему вы получаете
java.lang.NoClassDefFoundError: scala/collection/Iterable
Это очень распространенная проблема, когда вы используете улей с искрой в качестве механизма выполнения ...
Шаги: .
1) перейти к $ HIVE_HOME / bin / hive
2) сделать резервную копию файла перед редактированием $ HIVE_HOME / bin / hive
3)Возьмите переменную classpath и сначала добавьте все jive jar
CLASSPATH=${CLASSPATH}:${HIVE_LIB}/*.jar
for f in ${HIVE_LIB}/*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done
Добавьте spark lib в hive classpath, как показано ниже, переменная classpath, в которой есть все библиотеки кустов ..
for f in ${SPARK_HOME}/jars/*.jar; do
CLASSPATH=${CLASSPATH}:$f;
done
Теперь у нас естьбанки ульев и свечи в одной переменной classpath.В Spark jars есть библиотеки scala, которые корректно использовать с spark, и нет проблем с совместимостью версий.
3) Теперь измените механизм выполнения куста, чтобы он указывал на искру в hive-site.xml, который вы уже знаете../doing
<property>
<name>hive.execution.engine</name>
<value>spark</value>
<description>Use Map Reduce as default execution engine</description>
</property>
- Другой вариант - использовать программные ссылки, как показано в примере ниже ...
Link Jar Files Теперь мы создаем мягкие ссылки на определенные файлы jar Spark, чтобы Hive мог их найти:
ln -s /usr/share/spark/spark-2.2.0/dist/jars/spark-network-common_2.11-2.2.0.jar /usr/local/hive/apache-hive-2.3.0-bin/lib/spark-network-common_2.11-2.2.0.jar
ln -s /usr/share/spark/spark-2.2.0/dist/jars/spark-core_2.11-2.2.0.jar /usr/local/hive/apache-hive-2.3.0-bin/lib/spark-core_2.11-2.2.0.jar
ln -s /usr/share/spark/spark-2.2.0/dist/jars/scala-library-2.11.8.jar /usr/local/hive/apache-hive-2.3.0-bin/lib/scala-library-2.11.8.jar
- Вывод: В любом случае вам необходимо убедиться, чтоБанки Скала указывают на улей, который используется искрой в качестве механизма исполнения ...