2016-04-29 13 views
2

Ich habe Hadoop und Hbase installiert, beide funktionieren gut, soweit ich das beurteilen kann. Wenn die eingebaute Glas mit hadoop versucht, erhalte ich eineHadoop/Hbase: java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseKonfiguration

java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration 

Fehler, mit Hbase Version 0.90.2 in meinem Maven Abhängigkeit.

Ich denke, das ist eine ziemlich alte Version von Hbase und ich bin unsicher, ob diese alte Version mit hadoop 2.7.2 oder sogar Java 8 kompatibel ist. Also habe ich versucht, Hbase Version 0.99.2 in meiner maven Abhängigkeit, aber dann Ich bekomme eine

Failed to execute goal on project exercise_2: Could not resolve dependencies for project com.company.exercise_2:exercise_2:jar:1.0-SNAPSHOT: Failure to find org.apache.hbase:hbase:jar:0.99.2 in http://repo.maven.apache.org/maven2 was cached in the local repository 

Fehler aus dem Maven-Plugin. Was mache ich falsch?

Hier ist meine pom.xml:

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-hdfs</artifactId> 
    <version>2.7.2</version> 
    <scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-mapreduce-client-core</artifactId> 
    <version>2.7.2</version> 
    <scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-common</artifactId> 
    <version>2.7.2</version> 
    <scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>org.apache.hbase</groupId> 
    <artifactId>hbase</artifactId> 
    <version>0.99.2</version> 
    <scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>org.apache.hbase</groupId> 
    <artifactId>hbase-client</artifactId> 
    <version>1.1.2</version> 
    <scope>provided</scope> 
</dependency> 

Antwort

1

Scheint, wie das Glas-Caching Problem ist, ich denke, HbaseConfiguration gemeinsame Klasse ist, unabhängig davon, welche Version von hbase verwendet.

Sie können die lokale Repository-Datei von hbase manuell löschen und den mvn XXXX-Befehl erneut versuchen.

Maven wird dann versuchen, den Klassenpfad herunterzuladen und zu korrigieren.

für die Gegenprüfung verwenden Sie die Option mvn ... -X, um zu sehen, welche Version von jar sie zu downloaden versucht.

Seit Rahmen dieses Glas ist

provided

die hbase Version dieses Glas in Ihrem Cluster Kreuz überprüfen. Verwenden Sie "hbase classpath" und prüfen Sie, ob diese Jar-Version eng mit Ihrer JAR-Datei Version von Maven Repository Ihrer pom.xml übereinstimmt.

Das sollte behoben werden.

+0

Vielen Dank für Ihre Antwort. Wie kann ich die lokale Repository-Datei manuell löschen? – JoshJ

+0

Maven hat lokale Repo in Ihrem lokalen Rechner wie .m2/Repo –

+0

Ich benutze IntelliJ mit dem Maven-Plugin, konnte ich keine lokalen Maven Repo in Intellij Dateien finden. Gibt es eine Möglichkeit, dies zu tun, obwohl ich das Plugin verwende? – JoshJ

Verwandte Themen