2015-02-06 160 views
0

我是Hadoop和MapReduce的初学者。在我的Ubuntu VM上安装Hadoop之后,我尝试了一些启动器例如Wordcount和Anagram。错误:java.lang.ClassNotFoundException:使用javac编译org.apache.hadoop.hbase.HBaseConfiguration

我想做一个Apriori on MapReduce。我在Sourceforge上发现了这个(http://sourceforge.net/p/apriorimapred/wiki/Home/)。

我下载并安装了一些必需的组件,如HBaseLog4j(虽然我有安装log4j的问题,所以我选择了通过设置水平关闭禁用它们)后,

我的问题

奋斗
"Error: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration" -- as in the picture. (https://dl.dropboxusercontent.com/u/51053996/Pics/hadoop%20classnotfound.jpg) 

每当我想运行jar文件时都会发生。 我采取的步骤是

1. javac -cp "$HADOOP_HOME/share/hadoop/mapreduce/hadoop-common-2.0.0-alpha.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.0.2-alpha.jar:$HADOOP_HOME/lib/commons-configuration-1.10/*:/usr/local/apache-log4j-1.2.17/log4j-1.2.17.jar:/usr/lib/hbase/hbase-0.94.8/hbase-0.94.8.jar" apriori.java 

2. jar -cvf apriori.jar -C . . 

3. $HADOOP_HOME/bin/hadoop jar /home/hduser/yarn/hadoop-2.5.1/share/hadoop/mapreduce/apriori.jar apriori /in /out2 /out2c /out2a 

(发生的问题,我在第3步中输入命令之后) 没有示出错误后我在步骤1(但是,我试图同时不包括"/usr/lib/hbase/hbase-0.94.8/hbase-0.94.8.jar"编译编译并且有大约100个错误 - 所以我猜测这个库运行良好)。

我坚持这个问题约2周:(并找不到任何工作解决方案。我已经尝试了很多建议,我发现如固定环境变量,在hbase-env.sh等添加一些行等。我书签他们(但并没有解决我的)。

太感谢你了,真的每一个帮助表示赞赏,

Spacez

回答

0

我已经通过重新安装兼容版本的Hadoop和HBase(我使用Hadoop 2.5.1和HBase 0.98.11)解决了这个问题。另外,在hadoop-env中添加Hadoop和Hbase jar的正确类路径。

0

你可以尝试从$HBASE_HOME复制hbase-{vsersion}.jar$HADOOP_HOME/lib

+0

嗨,感谢您的回复。我试着这么做,但不幸的是问题仍然存在:( https://dl.dropboxusercontent.com/u/51053996/Pics/hadoop.jpg – Spacez 2015-02-13 09:03:48

+0

你重新启动你的群集? – mashuai 2015-02-17 03:21:27

0

就我而言,我只是跑:

export HADOOP_CLASSPATH=`~/hbase/bin/hbase classpath` 
java -cp "$HADOOP_CLASSPATH:target/<myjar>.jar" <path_to>.<myHBaseClass> 
1

我用的HBase-098.8-hadoop2使用Nutch 2.3.1(山0.6.1),并遇到了同样的错误。它被固定后,我加入以下行$NUTCH_ROOT/ivy/ivy.xml

<dependency org="org.apache.hbase" name="hbase-common" rev="0.98.8-hadoop2" conf="*->default" /> 

这被提及作为官方Nutch 2教程山的bug。