2011-12-07 16 views
2

私はHadoop 0.20を持っていますが、$ HADOOP/bin/start -all.shを実行して起動しています。 すべての悪魔が実行されているが、データノード間、それは誤りhadoopの起動中にエラーが発生する

localhost: Unrecognized option: -jvm
localhost: Error: Could not create the Java Virtual Machine.
localhost: Error: A fatal exception has occurred. Program will exit.

をスローしかし、私は、Javaがインストールされています。

[[email protected] bin]# java -version
java version "1.7.0_01" Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Server VM (build 21.1-b02, mixed mode)

と私はまた、HTTPアクセスできるようにしています:いずれかが案内してくださいすることができ50030/jobtracker.jsp

:// localhostを:50070/ dfshealth.jspそしてます。http:// localhostと私は何が問題ですか?

+0

これはServerfault –

答えて

4

rootとして実行するとHadoopのバグです。それは新しいリリースで修正されています。ここにはJIRAがあります。最新バージョンのHadoopを使用してください。

ルートはシステムに完全にアクセスします。別のユーザーを作成し、デーモンを開始します。なぜデーモンをrootとして起動するのですか?

また、Apache recommendsは、Oracle 6からJava 6を使用しています。 Java 7を実行しているように見えます.Java 7のHadoopは完全にテストされていません。

+0

Okに移行する必要があります。Praveen.JSKコマンドを実行することもできません.jdk 1.5以降(oracleが請求しているように) – JustCoding

+0

+1正しい答え。私はテストしました。 –

3

-jvmオプションは、我々は、安全な データノードの起動時にJSVCに渡されるべきではなく、セキュアなデータノードが無効になっている間start-dfs.shがルート によって運営されている場合、それはまだのjavaに渡されます。

これはbin/hdfs.or bin/hadoopのバグです。

次のパッチを適用してください。

HDFS-1943パッチ。

diff --git bin/hdfs bin/hdfs index 76ff689..ce9dc0a 100755 --- bin/hdfs +++ bin/hdfs @@ -71,7 +71,7 @@ elif [ "$COMMAND" = "secondarynamenode" ] ; then >HADOOP_OPTS="$HADOOP_OPTS $HADOOP_SECONDARYNAMENODE_OPTS" elif [ "$COMMAND" = "datanode" ] ; then
CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode' - if [[ $EUID -eq 0 ]]; then + if [ "$starting_secure_dn" = "true" ]; then HADOOP_OPTS="$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTS" else HADOOP_OPTS="$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"

patch -p0 < /path/to/patch/file /path/to/file/to/be/patched

/パス/に/ファイル///パッチを適用することが../bin/なり、端末

でパッチの実行を適用HDFS.patch.Toという名前のファイルに上記をコピーhadoopまたは.../bin/hdfs

関連する問題