0

私はhadoopに必要なすべての作業を実行しましたが、たとえば次のような問題があるようです。

クラスHello.classがあり、コマンド「java Hello」を使用すると正しく機能しますが、コマンド「hadoop Hello」を使用しようとすると、「メインクラスをロードまたは検索できません」と報告されますが、 「jar」コマンドを使用してHello.classをHello.jarに変更しますが、「hadoop jar Hello.jar Hello」コマンドを使用します。今回は、「javaHello」コマンドを使用した場合と同じように正しく機能します。

私の構成の何が問題になっていますか?

ファイル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

ファイル「hadoop-env.sh」に「exportJAVA_HOME=/ usr/jdk1.7.0_04」を追加しました

それに応じて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 に答える