2

世界中のみんなと同じように、私はこのHadoopチュートリアルに従っています。私はHDFSをフォーマットするところまで来ました、そして私はこれを手に入れます:

user@linux01:~$ sudo $HADOOP_INSTALL/bin/hadoop namenode -format
Error: JAVA_HOME is not set.

おかしいですが、/ etc/profilesにJAVA_HOMEを設定しました。

user@linux01:~$ tail -n 4 /etc/profile
export JAVA_HOME=/usr/local/jdk1.6.0_32/bin
export JDK_HOME=$JAVA_HOME
export PATH=$PATH:/usr/local/jdk1.6.0_32/bin
export HADOOP_INSTALL=/usr/local/hadoop/hadoop-1.0.3

どういうわけかそれを台無しにしましたか?

user@linux01:~$ echo $JAVA_HOME
/usr/local/jdk1.6.0_32/bin
user@linux01:~$ ls $JAVA_HOME
appletviewer  extcheck       jar        javac    and so forth...

動作しているようです。多分それは私のhadoop-env.shで絶対に設定する必要がありますか?

# The java implementation to use.  Required.
export JAVA_HOME=$JAVA_HOME

怠惰ですが、このコメントの有無にかかわらず、「JAVA_HOMEが設定されていません」というメッセージが表示されます。アイデアが不足しています。誰かが私が欠けているものを見ますか?

4

3 に答える 3

1

ヒントをくれた @Chris Shain と @Chris White に感謝します。私は su として hadoop を実行していましたが、su は私が設定した環境変数を自動的に認識しません。Hadoop ユーザーとしてログインし (hadoop インストール ディレクトリをこのユーザーに chown しました)、hdfs をフォーマットできました。

二次的な問題: Hadoop を起動しようとすると、NameNode と JobTracker は正常に起動しましたが、DataNode、SecondaryNameNode と TaskTracker は起動できませんでした。少し掘り下げました。NameNode と JobTracker は hadoop-daemon.sh で起動されますが、DataNode、SecondaryNameNode、TaskTracker は hadoop-daemon*s*.sh で起動されます。ここでの解決策は、conf/hadoop-env.sh で JAVA_HOME を適切に設定することでした。

于 2012-06-01T14:52:01.373 に答える
0

短い名前を使用して、パスにスペースが含まれないようにしてください。

「C:\Program Files」には、短い名前 C:\Progra~1 が必要です (DOS dir コマンドを使用するか、ファイル エクスプローラーのアドレス バーに入力して確認できます)。

JAVA_HOME を次のように設定します。

export JAVA_HOME="/cygdrive/c/Progra~1/Java/jdk1.7.0_10"

user2540312 が回答

于 2013-12-15T19:02:48.880 に答える