Tez 上的 Hive 在 Spark 2 中不起作用



与SPARK 1.6.2一起使用HDP 2.5时,我们将Hive与Tez一起用作其执行引擎,并且起作用。

但是,当我们使用SPARK 2.1.0移动到HDP 2.6时,Hive并没有与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)

查看了这个问题的答案后,我们将Hive执行引擎切换为MR(MapReduce(,而不是Tez,它起作用了。

但是,我们想与Hive一起在Tez上工作。解决上述例外需要什么才能使hive在Tez上工作?

我在Spark作业以纱线群集模式运行时也遇到了相同的问题,并且在添加正确的Hive-site.xml时已解决(添加到Spark-Default配置(" Spark.yarn.dist.files"

基本上有两个不同的hive site.xml文件,一种是用于蜂巢配置:/USR/hdp/current/hive-client/conf/hive-site.xml另一个是Spark的较轻版本(只有Spark可以与Hive一起使用的详细信息(:/Etc/spark/0/hive-site.xml(请在设置中检查一次路径(

我们需要为spark.yarn.dist.files。

使用第二个文件

最新更新