【问题标题】:Error: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration compiling using javac错误:java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration 使用 javac 编译
【发布时间】:2015-02-06 19:51:56
【问题描述】:

我是 Hadoop 和 MapReduce 的初学者。在我的 Ubuntu VM 上安装 Hadoop 后,我尝试了一些入门示例,例如 Wordcount 和 Anagram。

我想做一个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 个错误——所以我猜这个 lib 运行良好)。

我在这个问题上坚持了大约 2 周 :( 并且找不到任何可行的解决方案。我尝试了很多我发现的建议,例如修复环境变量、在 hbase-env.sh 中添加一些行等。这里有一些我为它们添加了书签(但没有解决我的问题)。

非常感谢,非常感谢您的每一次帮助,

空间

【问题讨论】:

    标签: java hadoop mapreduce hbase classnotfound


    【解决方案1】:

    我在 nutch 2.3.1 (gora 0.6.1) 中使用 hbase-098.8-hadoop2 并遇到了同样的错误。在我将以下行添加到 $NUTCH_ROOT/ivy/ivy.xml 后,它已修复:

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

    这在官方Nutch 2 教程中被称为gora 错误。

    【讨论】:

      【解决方案2】:

      您可以尝试将hbase-{vsersion}.jar$HBASE_HOME复制到$HADOOP_HOME/lib

      【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        至于我,我只是跑了:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-04
          相关资源
          最近更新 更多