0

我已经完成了 hadoop 所需的所有工作,但它似乎有问题,例如:

我有一个类 Hello.class,当我使用命令“java Hello”时它可以正常工作,但是当我尝试使用命令“hadoop Hello”时它报告“无法加载或找到主类”,但是当我使用“jar”命令将Hello.class更改为Hello.jar,但是,我使用命令“hadoop jar Hello.jar Hello”,这次它可以正常工作,就像我使用命令“java Hello”一样

我的配置有什么问题?

在文件 etc/profile 中添加了以下内容:

export JAVA_HOME=/usr/jdk1.7.0_04
export HADOOP_INSTALL=/usr/hadoop-1.0.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_INSTALL/bin
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

我已将“export JAVA_HOME=/usr/jdk1.7.0_04”添加到文件“hadoop-env.sh”中

我已经相应地更改了 core-site.xml、hdfs-site.xml、mapred-site.xml

有没有人有同样的问题?

4

1 回答 1

1

hadoop Hello命令运行 hadoop 并在当前类路径中查找名为 Hello 的类 - 它不包含您的类。

将你的类捆绑到一个 jar 中并运行hadoop jar myjar.jar Hello告诉 hadoop 将 jar 文件 myjar.jar 添加到类路径中,然后运行名为 Hello 的类(现在在类路径中)

如果要将类添加到类路径中,请配置HADOOP_CLASSPATH环境变量

于 2012-05-30T12:48:24.890 回答