运行hbase mapreduce作业会导致hbaseconfiguration noclassdeffounderror异常

aiqt4smr  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(290)

我已经设置了变量 ~/.bashrc ```
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/lcoal/Hbase/lib/hbase-client-1.2.4.jar

但是当我编译代码的时候

java -cp $HADOOP_CLASSPATH:/home/hadoopuser/Downloads/myjar.jar com.bigdata.uniquecoder.WordCountClass

它仍然给我这个错误。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration
at com.bigdata.uniquecoder.WordCountClass.main(WordCountClass.java:57)

Caused by:java.lang.ClassNotFoundException:org.apache.hadoop.hbase.HBaseConfiguration at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more

注意:当我在eclipse中运行它时,它工作得很好,但是在hadoop上运行时会出现这个错误。任何帮助都将不胜感激。
jbose2ul

jbose2ul1#

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

缺少的类将出现在 hbase-common-x.y.z.jar 更新 $HADOOP_CLASSPATH 具有

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/Hbase/lib/hbase-common-1.2.4.jar

或者,

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/Hbase/lib/

这会把所有的jar都装进去 $HBASE_HOME/lib 确保 $HADOOP_CLASSPATH 包含必要的hadoop库。否则,请使用下面的 export 命令输入 ~/.bashrc ```
export HADOOP_CLASSPATH=$HADOOP_HOME/share/hadoop/common/:$HADOOP_H‌​OME/share/hadoop/com‌​mon/lib/:$HADOOP_HOM‌​E/share/hadoop/hdfs/‌​:$HADOOP_HOME/share/‌​hadoop/hdfs/lib/:$HA‌​DOOP_HOME/share/hado‌​op/yarn/:$HADOOP_HOM‌​E/share/hadoop/yarn/‌​lib/:/usr/local/Hbase/lib/:$CLASSPATH

相关问题