2013-10-03 389 views
2

當我運行在Eclipse IDE中的Java程序(不能將新HTable),我得到了以下錯誤:產生的原因:拋出java.lang.ClassNotFoundException:org.apache.zookeeper.KeeperException

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/zookeeperKeeperException 
at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:185) 
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:154) 
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:132) 
at HBaseConnector.main(HBaseConnector.java:27) 
Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.KeeperException 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 4 more 

import java.io.IOException; 

import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.hbase.HBaseConfiguration; 
import org.apache.hadoop.hbase.client.Get; 
import org.apache.hadoop.hbase.client.HTable; 
import org.apache.hadoop.hbase.client.Put; 
import org.apache.hadoop.hbase.client.Result; 
import org.apache.hadoop.hbase.client.ResultScanner; 
import org.apache.hadoop.hbase.client.Scan; 
import org.apache.hadoop.hbase.util.Bytes; 

public class HBaseConnector { 
    public static void main(String[] args) throws IOException { 
    Configuration config = HBaseConfiguration.create(); 
    HTable table = new HTable(config, "myLittleHBaseTable"); 
    ... 
} 

-------------- 
used jar files: 
hbase-0.94.6-cdh4.3.0.jar 
zookeeper-3.4.5-cdh4.3.0-tests.jar 
lf4j-log4j12-1.7.5.jar 
commons-configuration-1.9.jar 
com.springsource.org.apache.commons.logging-1.1.1.jar 
commons-lang-2.6.jar 
hadoop-core-0.20.0.jar 

這是哪裏錯了?

回答

1

試試這個

我通過修改配置文件「/usr/local/hbase-0.94.1/conf/hbase-env.sh」,並添加元素「出口HBASE_CLASSPATH固定該=在/ usr /本地/ HBase的-0.94.1/lib目錄」。

zookeeper JAR位於「/usr/local/hbase-0.94.1/lib」的HBase安裝中。

0

只需在位於HBASE的構建路徑中包含zookeeper jar文件即可。 它應該解決你的問題。

相關問題