我一直在尝试提交火花以与org.apache.spark.sql.hive.HiveContext一起工作,但是我一直在不断提出java.lang.NoClassDefFoundError:org / apache / tez / dag / api / SessionNotRunning。这是代码,在最后一行中断:
val sc = SparkContext.getOrCreate()
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
这是Hortonworks 2.3.4上的版本,带有spark 1.5.2,hive 1.2.1,hadoop 2.7.1和tez 0.7.0。我将maven用于除数据核之外的所有依赖项,在spark-submit的--files参数中有hive-site.xml和tez-site.xml。这是我pom中与tez相关的摘录:
<dependency>
<groupId>org.apache.tez</groupId>
<artifactId>tez-api</artifactId>
<version>${tez.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tez</groupId>
<artifactId>tez-dag</artifactId>
<version>${tez.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tez</groupId>
<artifactId>tez-common</artifactId>
<version>${tez.version}</version>
</dependency>
此代码可在Spark Shell中正常工作。有什么建议吗?
遵循@ user1314742的建议,我从hive-site.xml中删除了与tez相关的所有内容。我将其包含在spark-submit的--files参数中,以免更改我的实际配置单元配置。
因此,将新的hive-site.xml放入您的spark conf目录中,然后尝试删除tez,然后重试..应该可以解决此问题
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句