2017-05-03 86 views
0

當使用HDP 2.5與spark 1.6.2一起使用時,我們使用Hive與Tez作爲其執行引擎並運行。Hive on Tez在Spark 2中不起作用

但是,當我們與火花2.1.0搬到HDP 2.6,蜂房沒有與TEZ作爲其執行引擎的工作,和下面的異常被拋出時,DataFrame.saveAsTable API被稱爲:

java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:529) at org.apache.spark.sql.hive.client.HiveClientImpl.<init> HiveClientImpl.scala:188)

看答案this問題後,我們切換蜂巢執行引擎,以MR(MapReduce的),而不是TEZ和它的工作。

但是,我們希望與Hive一起在Tez上工作。需要什麼來解決上述異常,以便Hive能夠使用Tez?

+0

我的兩分錢:檢查Spark使用的'hive-site.xml'是否已從所有TEZ配置屬性中清除。 –

+0

但我們想使用TEZ。我的問題是如果我們可以在HDZ 2.6上使用Hive對TEZ(在HDP 2.5中它工作但在HDP 2.6中它不會)。 –

+0

Spark不**使用TEZ。 Spark不**使用MR。 Spark有自己的執行引擎。因此,當您連接到Hive Metastore時,您看到的錯誤必須來自(無用的)初始參數。 –

回答

0

我有同樣的問題火花作業紗線集羣模式下運行時,當正確的蜂巢-site.xml中加入(加入火花默認配置)「spark.yarn.dist.files」這是解決

基本上有兩種不同的蜂房site.xml文件 之一是用於蜂巢配置:/usr/hdp/current/hive-client/conf/hive-site.xml 另一種是用於火花打火機版本(具體細節只適用於spark與配置單元一起使用):/etc/spark//0/hive-site.xml(請檢查一次設置的路徑)

我們需要使用第二個文件作爲spark。 yarn.dist.files。