使用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的主要内容,如果未能解决你的问题,请参考以下文章

职位画像中phoenix链接HBase异常之版本不匹配

HBASE基础使用Java API实现DDL与DML

HBase Java 操作 HBase 教程

如何使用Java API操作Hbase

如何使用Java API操作Hbase

运行 Hbase Java API 时出错