2017-04-10 118 views
0

我试图配置Hive,在Google Dataproc镜像v1.1(如Hive 2.1.0和Spark 2.0.2)上运行,使用Spark作为执行引擎而不是默认的MapReduce。如何配置Hive在Google Dataproc上使用Spark执行引擎?

按照这里的说明https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started并不真的有帮助,当我设置hive.execution.engine=spark时,我总是收到Error running query: java.lang.NoClassDefFoundError: scala/collection/Iterable错误。

有谁知道让Dataproc运行的具体步骤吗?从我可以告诉它应该只是一个问题,使Hive看到正确的JAR,因为Hive和Spark已经在群集上安装和配置,并且使用Spark的Hive(反过来)可以正常工作。

回答

1

这可能不适用于Dataproc群集中的jar。在Dataproc中,Spark是使用捆绑的Hive(-Phive)编译的,Hive没有在Spark上提供/支持。

如果您确实想在Spark上运行Hive,您可能需要尝试按照wiki中所述编译的初始化操作中引入您自己的Spark。

如果你只是想在运行Tez的Dataproc上运行Hive,关闭MapReduce,this initialization action可能会更容易。

+0

谢谢!我在尝试Spark之前尝试过在Tez上运行,但那也不起作用。我使用了你提到的成功安装Tez的初始化操作,但是当我设置'hive.execution.engine = tez'时,我总是收到'运行查询的错误:java.lang.NoClassDefFoundError:org/apache/tez/runtime/api/Event' 。你知道还有什么我需要配置为Tez工作? – domkck

相关问题