在我的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.
15条答案
按热度按时间mxg2im7a1#
我也遇到过类似的问题,以下步骤为我解决了错误。
在中下载并安装java
c:/java/
(确保路径是这样的,如果java安装在程序文件中,那么hadoop-env.cmd将无法识别java路径)下载hadoop二进制发行版。
设置环境变量:
这是一个github链接,其中包含一些hadoop版本的winutils。
(如果您使用的版本不在列表中,请遵循在windows上设置hadoop的常规方法-link)
如果找到了您的版本,则将文件夹的所有内容复制粘贴到路径:/bin中/
设置所有.xml配置文件-link
最后在hadoop-env.cmd文件中设置java\u home路径
可能会解决的
'JAVA_HOME is incorrectly set.'
错误希望这有帮助。
jogvjijk2#
打开命令提示符并尝试以下操作。。。回显%java\u home%,然后检查是否设置了java home。如果没有设置java home。
在这里检查如何在windows中设置java\u home
yyyllmsg3#
请在中添加以下行
hadoop-env.cmd
. 这应该是第一线hadoop-env.cmd
评论之后。这个缩短的progra~1名称是sfn
这个sans需要将java复制到其他目录中,正如其他答案中所述,您可以使用特定于hadoop的java版本。
vbkedwbf4#
您可以调试bin文件夹中的hadoop.cmd文件,可能有一些命令存在语法问题或提供的路径不正确。
打开hadoop.cmd文件,看到第一行“@echo off”将出现。将“@echo off”更改为“@echo on”并保存它。现在运行“hadoop-version”命令。它将向您显示哪个命令的“命令语法不正确”错误即将出现。如果有语法问题或路径问题,请更正它。
8zzbczxx5#
“@echo on”将帮助我们追踪错误。消息出现在hadoop-config.cmd文件中。请将c:\program files\java复制到c:\java,然后更改路径并重试。这会有用的。
flvtvl506#
只是遇到了同样的问题(win8.1+hadoop2.7.0[源代码构建])。
问题是java所在的路径名中的(ol'good)空格(在c:\program files\dir下)。我所做的是:
1) 将jdk dir复制到c:\java\jdk1.8.0\u 40
2) 编辑\etc\hadoop\hadoop-env.cmd并更改:set java\u home=c:\java\jdk1.8.0\u 40
3) 运行cmd并执行hadoop-env.cmd
4) 现在检查‘hadoop版本’是否还在抱怨(我的不是)
zdwk9cvp7#
只需删除hadoop-env.cmd文件中的bin文件夹(
C:\hadoop-2.8.0\etc\hadoop\hadoop-env.cmd
) "C:\Java\jdk-9.0.1\bin
“我在下面提到的那条路。这对我有用。f8rj6qna8#
将java bin位置添加到
path
环境变量。喜欢zfciruhq9#
为了避免在没有空间的路径中安装另一个jdk,可以使用windows命令mklink创建一个符号链接。下面是方法。
以管理员身份打开cmd提示符。
如果没有打开cmd提示符,请导航到c:\。
创建符号链接。在这里,我将hadoop抱怨的路径(有程序文件)设置为一个没有空格的简单路径。/d参数表示您正在创建一个目录符号链接。
mklink/d\java\u home“c:\program files\java\jdk1.7.0\u 65”
在hadoop-env.cmd中,将java\u主页设置为创建的符号链接:
set java\u home=\java\u home
这就是我的工作。有关在windows中创建符号链接的详细信息:http://www.windows7home.net/how-to-create-symbolic-link-in-windows-7/
z9gpfhce10#
大多数答案都建议复制jdk安装路径。但是,如果您不喜欢这样做,可以使用windows短路径来设置路径名,以便所有应用程序都可以轻松地访问该路径。
设置包含空格的env变量的方法:
ivqmmu1c11#
检查您的
JAVA_HOME
.如果是c:\program files\java\jdk1.7.0\U 65。那么你就会遇到这样的问题。到了c:\mydrive\java\jdk1.7.0\u65就成功了。“程序文件”中的空格会产生问题。
路径是
PATH;%JAVA_HOME%\bin
如果您使用的是windows,那么您肯定会面临以下问题(由于x64和x86问题):1 .
致命的datanode.datanode:securemain java.lang.nullpointerexception和
2.
致命的namenode.namenode:无法启动namenode。java.lang.unsatifiedLinkError:org.apache.hadoop.io.nativeio.nativeio$windows.access0(ljava/lang/string;(一)
解决方案:
将这些文件hadoop.dll、hadoop.exp、hadoop.lib、hadoop.pdb、libwinutils.lib、winutils.exe、winutils.pdb从链接复制到hadoop installed loaction的bin文件夹,如下所示\hadoop已安装\hadoop\hadoop-2.6.0\hadoop-2.6.0\bin
tzcvj98z12#
将jdk安装到没有空格的文件夹中。而不是
C:\Program Files\Java\jdk1.8.x_xx
,试试看C:\java\jdk1.8.x_xx
.3lxsmp7m13#
这个问题的解决办法很简单
大多数人都会将javau主页设置为c:\programfiles\java\jdk1.8.0\u121
这里的问题是空格,您需要做的是,将jdk1.8.0\u121的内容复制到c驱动器中的一个文件夹中,比如c:\java
现在使用此路径作为您的java\u主页
vwhgwdsa14#
正如其他人回答的那样,这是因为javau home path中有空间,我不得不用progra~1替换程序文件。但我不得不在环境变量和hadoop-env.cmd文件中对其进行更改。我犯了同样的错误,直到我在两个地方都改了。
sycxhyv715#
错误的原因是“程序文件”之间的空格。在配置时,在所有路径中将其替换为progra~1