Für Sie ist Spark v1.5.2
von com.google.inject:guice:3.0
abhängig.
So vermute ich, dass das, was passiert ist, dass das Projekt sowohl zieht:
Guice 4.0
(als eine direkte Abhängigkeit in Ihren Abhängigkeiten angegeben Datei wie pom.xml
oder build.sbt
); und
Guice 3.0
(eine transitive Abhängigkeit gezogen von Spark v1.5.2
)
Grundsätzlich Classpath endet ein Durcheinander zu sein, und je nach Art und Weise Klassen werden von den Klassenlader zur Laufzeit geladen werden Sie (oder nicht) Erfahrung solchen Art von Fehlern.
Sie müssen die bereits provided
Version von Guice (gezogen von Spark) oder Jonglieren mit Classloadern verwenden.
UPDATE:
der Tat die org.apache.spark:spark-core_2.10:1.5.2
zieht com.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
...
Die spark-core
pom.xml
ist here.
Die hadoop-yarn-common
pom.xml
ist here.
Die hadoop-yarn
pom.xml
ist here.
Die hadoop-project
pom.xml
ist here.
Haben Sie eine Referenz für die pom.xml? Ich vermute, dass mein Klassenpfad in Unordnung ist. –
Lol Ich kann keine pom.xml finden, die auf die richtige Eingabe selbst angewiesen ist, es ist peinlich. Wenn ich jedoch ein Fettglas mit "spark-core" v1.5.2 als Abhängigkeit erzeuge, kann ich sehen, dass Guice 3.0 enthalten ist (warum ich zu der vorherigen Schlussfolgerung kam). Ich werde zu Ihnen zurückkommen, sobald ich mehr Informationen habe und ich verstehe, warum es passiert. – mauriciojost
http://stackoverflow.com/questions/36320695/guice-dependency-is-transitively-pulled-without-explicit-dependency – mauriciojost