[英]Hadoop on Windows - "Error JAVA_HOME is incorrectly set."
I'm trying to get Hadoop running 'Local Mode' on my Windows machine.我试图让 Hadoop 在我的 Windows 机器上运行“本地模式”。 I've been using this guide: http://hadoop.apache.org/docs/r1.2.1/single_node_setup.html
我一直在使用本指南: http : //hadoop.apache.org/docs/r1.2.1/single_node_setup.html
When I run the command: bin/hadoop, I get the following error message:当我运行命令:bin/hadoop 时,我收到以下错误消息:
Error: JAVA_HOME is incorrectly set.
错误:JAVA_HOME 设置不正确。 Please update C:...\\hadoop-2.7.1\\conf\\hadoop-env.cmd
请更新 C:...\\hadoop-2.7.1\\conf\\hadoop-env.cmd
Inside hadoop-env.cmd
, I have the line: set JAVA_HOME=%JAVA_HOME%
在
hadoop-env.cmd
,我有一行: set JAVA_HOME=%JAVA_HOME%
When I type echo %JAVA_HOME%
at the command line I get: C:\\Java\\jdk1.0.8_51
当我在命令行输入
echo %JAVA_HOME%
时,我得到: C:\\Java\\jdk1.0.8_51
Even if I change the line in hadoop-env.cmd
to: set JAVA_HOME=C:\\Java\\jdk1.0.8_51
I get the same error...即使我将
hadoop-env.cmd
的行更改为: set JAVA_HOME=C:\\Java\\jdk1.0.8_51
我set JAVA_HOME=C:\\Java\\jdk1.0.8_51
得到同样的错误......
How could it be that my JAVA_HOME
is incorrectly set?怎么可能是我的
JAVA_HOME
不正确?
如果您的JAVA_HOME路径包含空格,则必须使用Windows 8.3路径名
like the other answers, your java environment path must not contain space. 像其他答案一样,您的Java环境路径不能包含空格。 The solution is as follows:
解决方法如下:
在conf \\ hadoop-env.cmd中使用“%JAVA_HOME%”
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131\
Above configuration was throwing same error as yours. 上面的配置抛出与您相同的错误。 I updated above with below in hadoop-env.cmd which is infact SFN
我在hadoop-env.cmd中使用以下内容更新了它,它实际上是SFN
set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_131\
This allowed me to change/have different java version than that of system. 这使我可以更改/拥有与系统不同的Java版本。
Try removing @ from @rem in hadoop-env.cmd and set JAVA_HOME=%JAVA_HOME% 尝试从hadoop-env.cmd中的@rem中删除@并设置JAVA_HOME =%JAVA_HOME%
rem The java implementation to use. Required.
set JAVA_HOME=%JAVA_HOME% 设置JAVA_HOME =%JAVA_HOME%
Then try running hdfs namenode -format 然后尝试运行hdfs namenode -format
This solution worked for me 这个解决方案对我有用
if your java environment path contains space, such as "C:\\Program Files\\java\\xxxxx" , the word 《Program Files》 contains a space, so CMD can't identificate 如果您的Java环境路径包含空格,例如“ C:\\ Program Files \\ java \\ xxxxx”,则单词“ Program Files”包含空格,因此CMD无法识别
this is the right answer 这是正确的答案
Try to place the java path in double-coats.尝试将 java 路径放在双层中。 Example:
例子:
JAVA_HOME="C:\Program Files\Java\jdk-12.0.1"
It should work fine.它应该可以正常工作。
in hadoop-config.xml, the logic is 在hadoop-config.xml中,逻辑是
if not exist %JAVA_HOME%\\bin\\java.exe ( echo Error: JAVA_HOME is incorrectly set. echo Please update %HADOOP_HOME%\\conf\\hadoop-env.cmd goto :eof ) 如果不存在,则为%JAVA_HOME%\\ bin \\ java.exe(echo错误:JAVA_HOME设置不正确。echo请更新%HADOOP_HOME%\\ conf \\ hadoop-env.cmd goto:eof)
if your java environment path contains space , such as "C:\\Program Files\\java\\xxxxx" , the word 《Program Files》 contains a space , so CMD can't identificate 如果您的Java环境路径包含空格 ,例如“ C:\\ Program Files \\ java \\ xxxxx”,则单词“ Program Files”包含空格 ,因此CMD无法识别
SO your can change the path instead. 因此,您可以改为更改路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.