使用Java API 操作Hbase表出现异常:Exception in thread "main" java.lang.NoClassDefFoundError
Posted ywendeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Java API 操作Hbase表出现异常:Exception in thread "main" java.lang.NoClassDefFoundError相关的知识,希望对你有一定的参考价值。
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
at com.ywendeng.hbase.HbseTable.(HbseTable.java:23)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at org.apache.hadoop.util.RunJar.run(RunJar.java:214)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration
at java.net.URLClassLoader
1.run(URLClassLoader.java:366)atjava.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:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
… 5 more
原因:是因为Hadoop 找不到Hbase 相关的依赖包
解决方法:在hadoop 的hadoop-env.sh文件的后面添加如下内容(注意:HBase jar包版本需要修改为你自己安装HBase 的jar 版本)
export HADOOP_CLASSPATH="$HADOOP_CLASSPATH:$HBASE_HOME/lib/*"
以上是关于使用Java API 操作Hbase表出现异常:Exception in thread "main" java.lang.NoClassDefFoundError的主要内容,如果未能解决你的问题,请参考以下文章