2016-04-29 20 views
2

hadoopとHbaseがインストールされています。 Hadoopので構築されたジャーにしようとしたとき、私は私のMavenの依存関係にHBaseのバージョン0.90.2を使用して、Hadoop/Hbase:java.lang.NoClassDefFoundError:org/apache/hadoop/hbase/HBaseConfiguration

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

エラーが発生します。

これはHbaseのかなり古いバージョンだと思います。この古いバージョンがhadoop 2.7.2やJava 8と互換性があるかどうかは分かりません。したがって、Maven依存関係でHbaseバージョン0.99.2を使用してみましたが、私は

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 

エラーをmavenプラグインから取得します。私は間違って何をしていますか?ここで

は私のpom.xmlである:これはjarファイルのキャッシュの問題であるように

<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> 

答えて

1

は思える、私はHbaseConfigurationに関係なく使用HBaseのどのバージョンの共通クラスだと思います。

hbaseのローカルリポジトリファイルを手動で削除し、もう一度mvn XXXXコマンドを試行できますか。

Mavenは、クラスパスをダウンロードして修正しようとします。

をクロスチェックするには、mvn ... -Xオプションを使用して、ダウンロードしようとしているjarのバージョンを確認します。

このjarファイルの範囲が

provided

あるのでクロスは、クラスタ内のこのjarのHBaseのバージョンを確認してください。 hbase classpathを使用して、このjarバージョンがpom.xmlのmavenリポジトリのjarファイルバージョンとよく似ているかどうかを確認してください。

修正する必要があります。

+0

ありがとうございます。 「手動でローカルリポジトリファイルを削除する」方法 – JoshJ

+0

mavenはローカルマシンにローカルリポジトリを持っています.m2/repo –

+0

私はMavenプラグインでIntelliJを使用していますが、IntellijのファイルにローカルMavenリポジトリが見つかりませんでした。私はプラグインを使用しますが、これを行う方法はありますか? – JoshJ