簡體   English   中英

Windows 上的 Hadoop - “錯誤 JAVA_HOME 設置不正確。”

[英]Hadoop on Windows - "Error JAVA_HOME is incorrectly set."

我試圖讓 Hadoop 在我的 Windows 機器上運行“本地模式”。 我一直在使用本指南: http : //hadoop.apache.org/docs/r1.2.1/single_node_setup.html

當我運行命令:bin/hadoop 時,我收到以下錯誤消息:

錯誤:JAVA_HOME 設置不正確。 請更新 C:...\\hadoop-2.7.1\\conf\\hadoop-env.cmd

hadoop-env.cmd ,我有一行: set JAVA_HOME=%JAVA_HOME%

當我在命令行輸入echo %JAVA_HOME%時,我得到: C:\\Java\\jdk1.0.8_51

即使我將hadoop-env.cmd的行更改為: set JAVA_HOME=C:\\Java\\jdk1.0.8_51set JAVA_HOME=C:\\Java\\jdk1.0.8_51得到同樣的錯誤......

怎么可能是我的JAVA_HOME不正確?

如果您的JAVA_HOME路徑包含空格,則必須使用Windows 8.3路徑名

像其他答案一樣,您的Java環境路徑不能包含空格。 解決方法如下:

  1. 在cmd行中,收費包含jdk的目錄(在我的情況下為C:\\ Program Files \\ Java \\ jdk1.8.0_73)。
  2. 執行以下行“為(。)中的%I做回顯%〜sI”以顯示已安裝的jdk的簡稱(在我的情況下為C:\\ PROGRA〜1 \\ Java \\ JDK18〜1.0_7)
  3. 在文件“ hadoop-env.cmd”中,將“ JAVA_HOME =%JAVA_HOME%”行更改為“ JAVA_HOME = C:\\ PROGRA〜1 \\ Java \\ JDK18〜1.0_7”。
  4. 再次運行文件“ hadoop-env.cmd”,它將正常運行。

在conf \\ hadoop-env.cmd中使用“%JAVA_HOME%”

 set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131\

上面的配置拋出與您相同的錯誤。 我在hadoop-env.cmd中使用以下內容更新了它,它實際上是SFN

set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_131\

這使我可以更改/擁有與系統不同的Java版本。

嘗試從hadoop-env.cmd中的@rem中刪除@並設置JAVA_HOME =%JAVA_HOME%

rem The java implementation to use.  Required.

設置JAVA_HOME =%JAVA_HOME%

然后嘗試運行hdfs namenode -format

這個解決方案對我有用

如果您的Java環境路徑包含空格,例如“ C:\\ Program Files \\ java \\ xxxxx”,則單詞“ Program Files”包含空格,因此CMD無法識別

這是正確的答案

嘗試將 java 路徑放在雙層中。 例子:

JAVA_HOME="C:\Program Files\Java\jdk-12.0.1"   

它應該可以正常工作。

在hadoop-config.xml中,邏輯是

如果不存在,則為%JAVA_HOME%\\ bin \\ java.exe(echo錯誤:JAVA_HOME設置不正確。echo請更新%HADOOP_HOME%\\ conf \\ hadoop-env.cmd goto:eof)

如果您的Java環境路徑包含空格 ,例如“ C:\\ Program Files \\ java \\ xxxxx”,則單詞“ Program Files”包含空格 ,因此CMD無法識別

因此,您可以改為更改路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM