2017-04-10 115 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

相關問題