我一直在尝试让 spark-submit 与 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 中正常工作。有什么建议吗?