执行hadoop代码时出现问题

时间:2010-09-28 19:56:05

标签: java hadoop

我刚开始使用Hadoop。我写了一本样本的hadoop代码,如书中所写。但是,在执行期间,异常仍然存在。我得到的片段:

[harsh @ geek hadoop-0.20.2] $ hadoop MaxTemperature input / ncdc / sample.txt输出 线程“main”中的异常java.lang.NoClassDefFoundError:MaxTemperature 引起:java.lang.ClassNotFoundException:MaxTemperature     在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)     at java.security.AccessController.doPrivileged(Native Method)     在java.net.URLClassLoader.findClass(URLClassLoader.java:190)     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)     在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)     在java.lang.ClassLoader.loadClass(ClassLoader.java:248) 找不到主类:MaxTemperature。程序将退出。

我该怎么办?

6 个答案:

答案 0 :(得分:0)

将MaxTemperature类添加到类路径中。

答案 1 :(得分:0)

当您运行hadoop jar时,这是您应该在放入jar的目录中运行的命令(例如/usr/lib/hadoop-0.20/bin)

  • hadoop jar NAMEOFJAR.jar arg1 arg2 argN
从您的问题

这可能是如何运行它(使cd到hadoop目录为您运行的hadoop版本)

  • cp MaxTemperature.jar /usr/lib/hadoop-0.20/bin
  • su hadoop
  • cd /usr/lib/hadoop-0.20/bin
  • hadoop jar MaxTemperature.jar输入/ ncdc / sample.txt输出

答案 2 :(得分:0)

它总是查找作为主类的入口点,即设置mapper和reducer类的代码段。如果它找不到它,它会抛出classnotfound异常。

答案 3 :(得分:0)

我经历过同样的事情。我在http://digitallibraryworld.com/?p=256上记录了一步一步的解决方案。希望它可以帮助某人

答案 4 :(得分:0)

您是否将MaxTemperature放入包中?

如果是,请说明MaxTemperature.class文件位于yourdir/bin/yourpackage/。你需要这样做:

export HADOOP_CLASSPATH=yourdir/bin
hadoop yourpackage.MaxTemperature

答案 5 :(得分:0)

首先,对于Map Reduce Execution,您需要使用类创建Jar文件,即Mapper,Reducer,Driver类。 移动到jar文件所在的文件夹并执行

bin/hadoop Sample.jar SampleDriver InputFileName OutPutFileName

试试吧。应该使用这些流程。