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

时间:2011-02-01 15:35:35

标签: java classpath hadoop javac hbase

我是用自己的HBase java客户端代码创建的,但是我很难编译它并让它运行。我正在从命令行编译,我还没有找到任何说明如何执行此操作,或者我需要在类路径上使用的jar。

以下是我正在使用的类路径:

$HADOOP_HOME/hadoop/hadoop-0.20.2/hadoop-0.20.2-core.jar:
$HADOOP_HOME/hbase/hbase-0.90.0/hbase-0.90.0.jar:
$HADOOP_HOME/hbase/lib/zookeeper-3.3.2.jar

当我运行javac命令时,它编译得很好。但是,当我运行我的java代码时,我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/MasterNotRunningException
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.MasterNotRunningException
    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:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: HBaseConnection.  Program will exit.  

我错过了什么?

谢谢!

2 个答案:

答案 0 :(得分:3)

类org.apache.hadoop.hbase.MasterNotRunning在类路径中不可用。您很可能没有设置类路径以包含hadoop jar。这可以像拼写错误一样简单(并且必须扩展$ HOME)。

答案 1 :(得分:0)

确保在系统中新构建本机文件。

错:

[hduser @ master sbin] $ hadoop fs -ls /

16/07/17 15:38:17 WARN util.NativeCodeLoader:无法为您的平台加载native-hadoop库...使用适用的builtin-java类

找到5项 drwxr-xr-x - hduser supergroup 0 2016-07-17 10:57 / cm

正确

[hduser @ master sbin] $ hadoop fs -ls /

找到5项

drwxr-xr-x - hduser supergroup 0 2016-07-17 10:57 / cm

配置错误,请按照以下链接进行构建  http://www.myiphoneadventure.com/hardware/hadoop-build-native-library

对于RHL 6 GLIBC_2.12上的Hadoop 2.7.2,您可以使用 https://github.com/sterin501/SecureHadoop/tree/master/native

对于完整的hadoop 2.7.2设置: http://wccandlinux.blogspot.in/2016/07/how-to-configure-hadoop-with-kerberos.html