亚马逊EMR火花上的蜂巢

问题描述 投票:2回答:2

我在hive上尝试了以下命令:

set hive.execution.engine=spark;

但在亚马逊EMR上设置执行引擎后运行任何查询时出错:

    Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Iterable
        at org.apache.hadoop.hive.ql.parse.spark.GenSparkProcContext.<init>(GenSparkProcContext.java:163)
        at org.apache.hadoop.hive.ql.parse.spark.SparkCompiler.generateTaskTree(SparkCompiler.java:328)
        at ---------------
    Caused by: java.lang.ClassNotFoundException: scala.collection.Iterable
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at ---------------

我试图将jar从spark复制到hive路径并激发conf文件到hive conf,仍然得到错误,任何修复?

apache-spark hive amazon-emr
2个回答
1
投票

我试图将jar从spark复制到hive路径并将conf文件引发到hive conf

您不需要进行任何类型的手动配置。你手动安装了任何组件吗?我刚刚创建了一个带有Hive,Spark和Hadoop的EMR集群,并且该命令开箱即用。

在创建群集时,您需要单击“转到高级选项”并手动检查组件。 “快速选项”中的Spark堆栈不包含Hive。


1
投票

要在hive脚本中添加与spark相关的jar,以在spark执行引擎中运行hive查询。

请在/ usr / lib / hive / bin / hive脚本中添加以下行

for f in ${SPARK_HOME}/jars/*.jar; do
     CLASSPATH=${CLASSPATH}:$f;
done

在这一行之后

HIVE_LIB=${HIVE_HOME}/lib

希望这可以帮助。

谢谢拉维

© www.soinside.com 2019 - 2024. All rights reserved.