Cドライブでhadoopを抽出した後、hadoop versionコマンドを実行してエラーを取得しようとしました。 Java_HOME
が環境変数に正しく設定されています。誰でもそのエラーを助けることができますか?
C:\>hadoop version
The system cannot find the path specified.
Error: Java_HOME is incorrectly set.
Please update C:\hadoop-2.5.1\conf\hadoop-env.cmd '-Xmx512m' is not recognized as an internal or external command, ooperable program or batch file.
答えのほとんどは、JDKインストールパスをコピーすることを示唆しています。ただし、気に入らない場合は、 Windowsの短いパス を使用してパス名を設定し、すべてのアプリケーションが簡単にパスにアクセスできるようにすることができます。
空白が含まれている場合にenv変数を設定する概念:
Progra~1 = 'Program Files'
Progra~2 = 'Program Files(x86)'
同じ問題に直面したばかりです(Win 8.1 + Hadoop 2.7.0 [ソースからビルド])。
問題は、パス名に(古い)空間Javaが(C:\ Program Files\dirの下)にある)であることが判明しました。
1)JDKディレクトリをC:\ Java\jdk1.8.0_40にコピーします
2)\ etc\hadoop\hadoop-env.cmdを編集して変更:set Java_HOME = c:\ Java\jdk1.8.0_40
3)cmdを実行し、hadoop-env.cmdを実行します
4)今でも「Hadoopバージョン」をチェックして、まだ文句を言っているかどうか(私はそうではなかった)
JDKをスペースのないフォルダーにインストールします。の代わりに C:\Program Files\Java\jdk1.8.x_xx
、試して_C:\Java\jdk1.8.x_xx
。
エラーの理由は、「プログラムファイル」間のスペースです。構成中にすべてのパスでPROGRA〜1に置き換えます
Java_HOME
。
C:\ Program Files\Java\jdk1.7.0_65の場合。その後、このような問題が発生します。 C:\ MyDrive\Java\jdk1.7.0_65に到達しました。 「プログラムファイル」のスペースは問題を作成します。
PATHはPATH;%Java_HOME%\bin
Windowsを使用している場合、(X64およびX86の問題による)などの問題に直面することは間違いありません。
FATAL datanode.DataNode:secureMain Java.lang.NullPointerExceptionの例外および
FATAL namenode.NameNode:namenodeの開始に失敗しました。 Java.lang.UnsatisfiedLinkError:org.Apache.hadoop.io.nativeio.NativeIO $ Windows.access0(Ljava/lang/String; I)
これらのファイルhadoop.dll、hadoop.exp、hadoop.lib、hadoop.pdb、libwinutils.lib、winutils.exe、winutils.pdbを link からhadoopがインストールされたloactionのbinフォルダーにコピーしますこのような。 ..\HadoopInstalled\hadoop\hadoop-2.6.0\hadoop-2.6.0\bin
この問題の解決策は簡単です
ほとんどの人は、Java_HOMEをC:\ Program Files\Java\jdk1.8.0_121に設定します。
ここに問題があるのはスペースにあり、あなたがする必要があるのは、jdk1.8.0_121のcontentdをCドライブのフォルダにコピーすることです、たとえばC:\ Java
次に、このパスをJava_HOMEとして使用します
Java binの場所をpath
環境変数に追加します。
path = path;$Java_HOME/bin
スペースのないパスに別のJDKをインストールする必要を回避するには、Windowsコマンドmklinkを使用してシンボリックリンクを作成できます。方法は次のとおりです。
シンボリックリンクを作成します。ここでは、Hadoopが(Program Filesを使用して)文句を言うパスを、スペースのないより単純なパスに設定しています。/D引数は、ディレクトリシンボリックリンクを作成していることを意味します。
mklink/D\Java_home "C:\ Program Files\Java\jdk1.7.0_65"
Hadoop-env.cmdで、Java_HOMEを作成したシンボリックリンクに設定します。
java_HOME =\Java_homeを設定します
これは私のために働いたものです。 Windowsでのシンボリックリンクの作成の詳細: http://www.windows7home.net/how-to-create-symbolic-link-in-windows-7/
hadoop-env.cmd
に次の行を追加してください。これは、コメントの後のhadoop-env.cmd
の最初の行でなければなりません。
set Java_HOME=C:\Progra~1\Java\jdk1.8.0_131\
この短縮されたProgra〜1の名前は [〜#〜] sfn [〜#〜]
これは、Javaを他の回答で意図されている他のディレクトリにコピーする必要があり、hadoopに固有のバージョンJavaバージョンを持つことができます。
私も同様の問題に直面しており、次の手順でエラーが解決しました。
ダウンロード &インストールJava in c:/Java/
(パスがこのようになっていることを確認してください。Javaがプログラムファイルにインストールされている場合、hadoop-env.cmdはJava pathを認識しません)
ダウンロード Hadoopバイナリ配布。
環境変数を設定します。
Java_HOME = "c:/Java"
HADOOP_HOME="<your hadoop home>"
Path= "Java_HOME/bin"
Path = "HADOOP_HOME/bin"
GitHubリンク があります。これには、Hadoopの一部のバージョンのwinutilsが含まれています。
(使用しているバージョンがリストにない場合は、WindowsでHadoopをセットアップする従来の方法に従ってください- link )
バージョンが見つかったら、フォルダーのすべてのコンテンツをコピーしてパスに貼り付けます:/ bin /
すべての.xml構成ファイルを設定します- リンク
最後に、hadoop-env.cmdファイルにJava_HOMEパスを設定します
おそらくそれは'Java_HOME is incorrectly set.'
エラー
お役に立てれば。
コマンドプロンプトを開いて、これを試してください...echo%Java_HOME%その後、Java home set。 set Java home。
こちら WindowsでJava_HOMEを設定する方法を確認してください
「@echo on」は、エラーを追跡するのに役立ちます。メッセージはhadoop-config.cmdファイルから表示されます。 PlsはC:\ Program Files\JavaをC:\ Javaにコピーし、パスを変更して試してください。これは動作します。
Binフォルダー内のhadoop.cmdファイルをデバッグできます。構文に問題があるか、パスが不適切なコマンドが提供されている可能性があります。
Hadoop.cmdファイルを開き、最初の行「@echo off」があることを確認します。「@ echo off」を「@echo on」に変更して保存します。今すぐ「hadoop -version」コマンドを実行します。 「コマンドの構文が正しくありません」というエラーが発生しているコマンドが表示されます。構文の問題がある場合、またはパスの問題がある場合は修正してください。
Hadoop-env.cmd file(C:\hadoop-2.8.0\etc\hadoop\hadoop-env.cmd
) "C:\Java\jdk-9.0.1\bin
"そして、私が以下で言及したパスを設定します。これは私のために働いた。
set Java_HOME="C:\Java\jdk-9.0.1"