2013-10-03 382 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文件即可。 它应该解决你的问题。

相关问题