当使用带有Spark 1.6.2的HDP 2.5时,我们使用Hive和Tez作为其执行引擎并且它可以工作。
但是当我们使用spark 2.1.0转移到HDP 2.6时,Hive没有使用Tez作为其执行引擎,并且在调用pom.xml
API时抛出了以下异常:
DataFrame.saveAsTable
java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:529)
在查看this问题的答案后,我们将hive执行引擎切换为MR(MapReduce)而不是Tez,并且它有效。
但是,我们想在Tez上与Hive合作。为了让Tez上的Hive工作,需要解决上述异常需要什么?
答案 0 :(得分:1)
当火花作业在YARN CLUSTER模式下运行时,我遇到了同样的问题,并且在添加了正确的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。