2016-11-27 12 views
0

私はHadoopをインストールして実行しようとしています。 そして、私はHadoopをインストールし、namenodeを正常にフォーマットしたと確信しています。私JAVA_HOMEは以下の通りですhadoopが起動できません--dfs.sh

localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-wenruo-namenode-linux.out localhost: /usr/local/hadoop/bin/hdfs: line 304: /usr/local/hadoop/usr/lib/jvm/java-8-oracle/bin/java: No such file or directory

echo $JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64

マイhadoop-env.shファイル:

私はstart-dfs.sh実行しようとしたとき しかし、私は以下のエラーを得ました

export JAVA_HOME=${JAVA_HOME}

すでにJAVA_HOMEをJDK7に設定しているため、HadoopはまだJDK8を探していますか?

ありがとうございました。

+0

ファイルを見ることなく難しいと言っています(hadoopバージョン?)。 hadoopディレクトリのコマンドgrepを使用して、このパスが '/ usr/local/hadoop/usr/lib/jvm/java-8-oracle/bin/java'からどこに来るのか確認し、bashrcを更新してJavaをエクスポートしてシェルを更新してください。だからあなたはそれを世界的に持っていきます。また、スクリプトでエクスポートした直後にJAVA_HOMEのエコーを追加します。 –

+0

@Nicolas FonteneleこんにちはNicolas、JAVA_HOMEをエコーし​​、JDK7ではなくJDK7を取得しています。 hadoopがまだJDK8を探している理由はまったく分かりません。 – wenruo

+0

現在のenvではJAVA_HOMEが正しいことが証明されています。しかし、例えば別のシェルからhadoopを実行すると、別のjava-homeがエクスポートされた可能性があります。あなたは私の提案をJava 8からgrepに持ってきてbashrcを更新しましたか?これは単一ノードの設定ですか?あなたはsen javaホームのローカルなので、他のノードにはないので、失敗するでしょう。 –

答えて

0

お待ちください。問題は解決されました。 hadoop-env.shで、JAVA_HOME = $ {JAVA_HOME}のエクスポートを$ JAVA_HOME/usr/lib/jvm/java-7-openjdk-amd64をエコーするように変更しました。 $ {JAVA_HOME}が動作しないようです。

0

一般に、各Hadoopディストリビューション/バージョンには、このJAVA_HOME環境をyarn-env.shファイルなどの変数に設定するいくつかの基本スクリプトファイルが含まれている必要があります。

また、hadoopのバージョンによっては、hdfs-site.xml、core-site.xml、yarn-site.xml、mapred-site.xmlなどの* -site.xmlファイルにパスが含まれることもあります。あなたが持っているサービスによってはいくつかのものがあります。 hadoop-env.shの更新が、クライアント・コンフィギュレーション・ファイルを再生成しない限り、クライアント・コンフィギュレーション・ファイルを再生成しなかった可能性があります。

時にはこれらもまた、bin/java実行可能ファイルシステムを使用するように設定されています。次のコマンドを使用して、ご使用のOSがbin/pathにあるJavaを見つけることができます。

READLINK -fは/ usr/binに/ javaの は/ usr/binに/ -version

あなたはまた、各ノードでhadoop-env.shを更新しましたJavaのそれは再びピックアップされていることを確認するためにすべてのサービスを再起動します?

関連する問題