在Hadoop上运行自己的代码时,ClassNotFoundException
我已经成功运行了hadoop示例grep、wordcount。。。然而,我发现要运行自己的代码有些困难…在Hadoop上运行自己的代码时,ClassNotFoundException,hadoop,mapreduce,Hadoop,Mapreduce,我已经成功运行了hadoop示例grep、wordcount。。。然而,我发现要运行自己的代码有些困难… 这就是我所做的 我从examples jar复制了grep代码,并对其进行了自己的更改。我使用javac命令编译它;我可以在我指定的文件夹中看到层次结构“org/apache/hadoop/examples/filename.class” 然后我把它(文件夹)装进一个罐子里;它现在是org/apache/。。。。。 现在,当我运行命令“bin/hadoop jar folder.jar fi
这就是我所做的 我从examples jar复制了grep代码,并对其进行了自己的更改。我使用javac命令编译它;我可以在我指定的文件夹中看到层次结构“org/apache/hadoop/examples/filename.class” 然后我把它(文件夹)装进一个罐子里;它现在是org/apache/。。。。。 现在,当我运行命令“bin/hadoop jar folder.jar filename input-output” 我不断发现这个错误:
Exception in thread "main" java.lang.ClassNotFoundException:....
有什么想法吗?或指导?检查您是否使用完全限定的类名grep运行命令:
hadoop jar folder.jar org.apache.hadoop.examples.Grep ..other_args..
为了实现这一点,我必须在conf/hadoop-env.sh和我的类路径中添加以下内容:
- 导出JAVA_HOME=/usr/JAVA/latest
- 导出HADOOP_HOME=/usr/lib/HADOOP
- 导出HADOOP\u MAPRED\u HOME=/usr/lib/HADOOP mapreduce
- 导出HADOOP\u COMMON\u HOME=$HADOOP\u HOME
- 导出HADOOP\u HDFS\u HOME=/usr/lib/HADOOP HDFS
- 导出HADOOP_纱线_HOME=/usr/lib/HADOOP纱线
- 导出HADOOP\u CONF\u DIR=$HADOOP\u HOME/etc/HADOOP
- 导出纱线配置目录=$HADOOP配置目录
- 导出HADOOP_类路径=$HADOOP_类路径:$HADOOP_映射_HOME:$HADOOP_HDFS_HOME:$HADOOP_纱线_HOME:$HADOOP_HOME:$HADOOP_CONF_DIR:$YARN_CONF_DIR:$JSVC_HOME