如何使用 tez 和 yarn 正确获取 spark-submit 配置单元上下文 运行?

How to get spark-submit hive context running properly with tez and yarn?

我一直在尝试让 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。我对除 data nucleus 之外的所有依赖项都使用 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 参数中,以免更改我的实际配置单元配置。

So put new hive-site.xml into your spark conf directory and try to remove tez and try again.. that should resolve the problem