Hadoop could not find or load main class

时间:2021-01-26 04:39:58

Error: Could not find or load main class <class_name>

我在尝试使用hadoop definitive guide的代码做练习时,遇到一个问题,

hadoop URLCat hdfs://namenode/data/input/test.txt

报找不到URLCat的错误

这种类型的错误造成的原因是要找到的类不在hadoop的 classpath中。

你可以使用hadoop classpath命令查看classpath.

其实你vi hadoop的时候,你就可以看到hadoop本身是一个shell文件,它里面有相关的处理,其中有一个就是classpath.

它会把HADOOP_CLASSPATH的值赋给classpath.

所以我们客户端调用hadoop命令前,可以直接把自己编译的文件夹设置到此即可。

所以:

export HADOOP_CLASSPATH=/path/to/class

注意这里的路径,如果你的类编译到了/home/hadoop/class/文件夹下面,那你就可以设定成这个folder,

加上class文件的名字就不对了。