2017-03-03 36 views
-1

我在~/.bashrc運行HBase的MapReduce工作給予HBaseConfiguration NoClassDefFoundError的例外

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之上運行時,給出了這樣的錯誤,它工作正常。 任何幫助將不勝感激。

+0

是在這裏一個錯字'在/ usr /的lcoal使用下面的命令export/...'或者是在'〜/ .bashrc'一樣嗎? – franklinsijo

+0

它與〜/ .bashrc中的相同 –

+0

它應該是'/ usr/local /'...... – franklinsijo

回答

0
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/ 

這將加載$HBASE_HOME/lib

下的所有罐子

確保$HADOOP_CLASSPATH包含必要的HADOOP庫。否則,在~/.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 
+0

仍然是同樣的錯誤。 –

+0

bin conf hbase-webapps lib logs README.txt CHANGES.txt docs LEGAL LICENSE.txt NOTICE.txt 這就是它返回的結果。 –

+0

ls/usr/local/Hbase/hbase-common *該hbase-common文件位於lib文件夾中。 –