我是用自己的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.
我错过了什么?
谢谢!
答案 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