我在Hadoop上运行自己的代码时出现ClassNotFoundException

时间:2012-03-27 21:24:56

标签: hadoop mapreduce

我已经设法运行hadoop示例grep,wordcount ...但是我发现有一些困难时间试图让我自己的代码运行...
这就是我所做的;

我从示例jar中复制了grep代码并对其进行了自己的更改。我使用命令javac编译它;我可以在文件夹中看到我指定的层次结构“org / apache / hadoop / examples / filename.class”

然后我把它(文件夹)装进一个罐子里;在它现在是org / apache / ..... 现在我运行命令“bin / hadoop jar folder.jar filename输出输出” 我一直在收到这个错误:

Exception in thread "main" java.lang.ClassNotFoundException:.... 

任何想法?或指导?

2 个答案:

答案 0 :(得分:2)

检查您运行的命令是否具有完全限定的类名grep:

hadoop jar folder.jar org.apache.hadoop.examples.Grep ..other_args..

答案 1 :(得分:0)

为了完成这项工作,我必须将以下内容添加到conf / hadoop-env.sh和我的类路径中:

  • 导出JAVA_HOME = / usr / java / latest
  • export HADOOP_HOME = / usr / lib / hadoop
  • export HADOOP_MAPRED_HOME = / usr / lib / hadoop-mapreduce
  • export HADOOP_COMMON_HOME = $ HADOOP_HOME
  • export HADOOP_HDFS_HOME = / usr / lib / hadoop-hdfs
  • export HADOOP_YARN_HOME = / usr / lib / hadoop-yarn
  • export HADOOP_CONF_DIR = $ HADOOP_HOME / etc / hadoop
  • 导出YARN_CONF_DIR = $ HADOOP_CONF_DIR
  • export HADOOP_CLASSPATH = $ HADOOP_CLASSPATH:$ HADOOP_MAPRED_HOME:$ HADOOP_HDFS_HOME:$ HADOOP_YARN_HOME:$ HADOOP_HOME:$ HADOOP_CONF_DIR:$ YARN_CONF_DIR:$ JSVC_HOME