2016-03-23 7 views
2

私はspark-submitをorg.apache.spark.sql.hive.HiveContextで動作するようにしようとしていましたが、java.lang.NoClassDefFoundError:org/apache/tez/dag/api/SessionNotRunning 。ここでは、最後の行に分割したコードは、次のとおりです。tezと糸でspark-submitハイブコンテキストを正しく実行するにはどうすればいいですか?

val sc = SparkContext.getOrCreate() 
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc) 

これは1.2.1ハイブ火花1.5.2、Hadoopの2.7.1、およびTEZ 0.7.0と2.3.4 Hortonworks、上にあります。データニュークリアスを除くすべての依存関係にmavenを使用していますが、spark-submitの--files引数にhive-site.xmlとtez-site.xmlがあります。ここに私のポンポンから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> 

このコードは、スパークシェルで正しく動作します。何かアドバイス?

+1

なぜあなたはspzを使っているので、私は理解できませんでした。 HiveContextを使用していても、Sparkは単独ですべての作業を行うことができます。 – user1314742

+0

@ user1314742、 私は特にtezを使用しようとしていません。 hive-site.xmlのexectionエンジンは、私たちのクラスタ上のtezです。私は、エラーを取り除くために依存関係を追加しています。 – RachmaninovQuartet

+0

新しいhive-site.xmlをあなたのspark confディレクトリに置き、tezを削除してもう一度やり直してください。問題が解決するはずです – user1314742

答えて

1

@ 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

関連する問題