[英]HBase - java.lang.NoClassDefFoundError in java
我只是想使用Java與Hbase互動
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.*;
import org.apache.hadoop.hbase.HBaseConfiguration;
public class TestHBase {
public static void main(String[] args) throws Exception {
Configuration conf = HBaseConfiguration.create();
HBaseAdmin admin = new HBaseAdmin(conf);
try {
HTable table = new HTable(conf, "test-table");
Put put = new Put(Bytes.toBytes("test-key"));
put.add(Bytes.toBytes("cf"), Bytes.toBytes("q"), Bytes.toBytes("value"));
table.put(put);
} finally {
admin.close();
}
}
}
上面是我的程序,我的TestHBase文件夾包含以下各項
hbase-0.94.6.1.3.0.0-0380.jar
TestHBase.class
我已經使用以下代碼創建了jar
java>jar -cvf TestHBase.jar -C TestHBase/ .
我已經使用以下代碼運行了我的罐子
Hadoop> Hadoop jar C:\java\bin\TestHBase.jar com.bgt.TestHBase
但是我收到以下錯誤
C:\HDP>hadoop jar C:\java\jdk1.6.0_31\bin\zip.jar com.bgt.TestHBase
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hba
se/HBaseConfiguration
at com.bgt.TestHBase.main(TestHBase.java:12)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:160)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfig
uration
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 6 more
誰能幫我
謝謝
它是Hbase客戶端Java程序,不應使用“ hadoop”運行它。 它應該是標准的jar程序運行風格,例如:java -jar yourjar .jar
當您使用“> jar -cvf TestHBase.jar -C TestHBase /時,”不會保證在運行時會遇到jar依賴項。
在eclipse中,jar導出功能可以選擇“可運行” jar。
因此建議您單獨運行測試類,並明確指出依賴的jar。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.