2016-03-28 13 views
1

私はspark strreamingプログラムを開発する際にguiceアーキテクチャを使用しています。それは何の誤りもなく私の食で実行することができます。しかし、スパーク-submitコマンドでコンパイルして展開した後、それはエラーを返します:クラークデラへのスパークジョブのデプロイメント失敗

java.lang.NoClassDefFoundError: com/google/common/base/Preconditions 

によるグーグルの後、私たちはGuiceの3.0を使用している場合、このエラーが表示されるだけであることに気づきました。しかし私はguice 4.0を使用しています。私のスパークバージョンは1.5.2で、私のクローダバージョンは5.3.2です。このエラーで何か回避策がありますか?

答えて

1

残念ながら、Spark v1.5.2com.google.inject:guice:3.0に依存しています。

だから私は何が起こっていることは、あなたのプロジェクトは、両方を引っ張っているということであると思われる:

  • Guice 4.0(あなたの依存関係に記載された直接の依存関係がpom.xmlbuild.sbtのようなファイルなど)。そして
  • Guice 3.0は(Spark v1.5.2によって引っ張ら推移依存)

基本的にクラスパスが台無しなってしまう、とクラスが必要になります(またはしない)、実行時にクラスローダによってロードされている方法に応じて、そのような経験しますエラーの種類。

すでにprovidedバージョンのGuice(Sparkによって引っ張られている)を使用するか、クラスローダーでジャグリングを開始する必要があります。


UPDATE:

実際org.apache.spark:spark-core_2.10:1.5.2com.google.inject:guice:3.0を引っ張る:

+-org.apache.spark:spark-core_2.10:1.5.2 [S] 
    + ... 
... 
    +-org.apache.hadoop:hadoop-client:2.2.0 
    | +-org.apache.hadoop:hadoop-mapreduce-client-app:2.2.0 
    | | +-com.google.protobuf:protobuf-java:2.5.0 
    | | +-org.apache.hadoop:hadoop-mapreduce-client-common:2.2.0 
    | | | +-com.google.protobuf:protobuf-java:2.5.0 
    | | | +-org.apache.hadoop:hadoop-mapreduce-client-core:2.2.0 
    | | | | +-com.google.protobuf:protobuf-java:2.5.0 
    | | | | +-org.apache.hadoop:hadoop-yarn-common:2.2.0 (VIA PARENT org.apache.hadoop:hadoop-yarn:2.2.0 and then VIA ITS PARENT org.apache.hadoop:hadoop-project:2.2.0) 
    | | | | | +-com.google.inject:guice:3.0 
... 

spark-corepom.xmlhereです。

hadoop-yarn-commonpom.xmlhereです。

hadoop-yarnpom.xmlは、hereです。

hadoop-projectpom.xmlは、hereです。

+0

pom.xmlの参照はありますか?私はクラスパスが混乱していると思っています。 –

+0

Lol私はguice自体に依存するpom.xmlを見つけることができません。困惑しています。しかし、私が "spark-core" v1.5.2を依存関係として使用してfat jarファイルを作成した場合、Guice 3.0が含まれていることがわかります(前の結論を得た理由)。私はより多くの情報を持っていれば私はあなたに戻ってきます、なぜそれが起こるのか理解しています。 – mauriciojost

+0

http://stackoverflow.com/questions/36320695/guice-dependency-is-transitively-pulled-without-explicit-dependency – mauriciojost

関連する問題