windows上的hadoop安装

dddzy1tm  于 2021-05-30  发布在  Hadoop
关注(0)|答案(15)|浏览(869)

在我的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.
mxg2im7a

mxg2im7a1#

我也遇到过类似的问题,以下步骤为我解决了错误。
在中下载并安装java c:/java/ (确保路径是这样的,如果java安装在程序文件中,那么hadoop-env.cmd将无法识别java路径)
下载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配置文件-link
最后在hadoop-env.cmd文件中设置java\u home路径
可能会解决的 'JAVA_HOME is incorrectly set.' 错误
希望这有帮助。

jogvjijk

jogvjijk2#

打开命令提示符并尝试以下操作。。。回显%java\u home%,然后检查是否设置了java home。如果没有设置java home。
在这里检查如何在windows中设置java\u home

yyyllmsg

yyyllmsg3#

请在中添加以下行 hadoop-env.cmd . 这应该是第一线 hadoop-env.cmd 评论之后。

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

这个缩短的progra~1名称是sfn
这个sans需要将java复制到其他目录中,正如其他答案中所述,您可以使用特定于hadoop的java版本。

vbkedwbf

vbkedwbf4#

您可以调试bin文件夹中的hadoop.cmd文件,可能有一些命令存在语法问题或提供的路径不正确。
打开hadoop.cmd文件,看到第一行“@echo off”将出现。将“@echo off”更改为“@echo on”并保存它。现在运行“hadoop-version”命令。它将向您显示哪个命令的“命令语法不正确”错误即将出现。如果有语法问题或路径问题,请更正它。

8zzbczxx

8zzbczxx5#

“@echo on”将帮助我们追踪错误。消息出现在hadoop-config.cmd文件中。请将c:\program files\java复制到c:\java,然后更改路径并重试。这会有用的。

flvtvl50

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版本’是否还在抱怨(我的不是)

zdwk9cvp

zdwk9cvp7#

只需删除hadoop-env.cmd文件中的bin文件夹( 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"
f8rj6qna

f8rj6qna8#

将java bin位置添加到 path 环境变量。喜欢

path = path;$JAVA_HOME/bin
zfciruhq

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/

z9gpfhce

z9gpfhce10#

大多数答案都建议复制jdk安装路径。但是,如果您不喜欢这样做,可以使用windows短路径来设置路径名,以便所有应用程序都可以轻松地访问该路径。
设置包含空格的env变量的方法:

Progra~1 = 'Program Files'
Progra~2 = 'Program Files(x86)'
ivqmmu1c

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

tzcvj98z

tzcvj98z12#

将jdk安装到没有空格的文件夹中。而不是 C:\Program Files\Java\jdk1.8.x_xx ,试试看 C:\java\jdk1.8.x_xx .

3lxsmp7m

3lxsmp7m13#

这个问题的解决办法很简单
大多数人都会将javau主页设置为c:\programfiles\java\jdk1.8.0\u121
这里的问题是空格,您需要做的是,将jdk1.8.0\u121的内容复制到c驱动器中的一个文件夹中,比如c:\java
现在使用此路径作为您的java\u主页

vwhgwdsa

vwhgwdsa14#

正如其他人回答的那样,这是因为javau home path中有空间,我不得不用progra~1替换程序文件。但我不得不在环境变量和hadoop-env.cmd文件中对其进行更改。我犯了同样的错误,直到我在两个地方都改了。

sycxhyv7

sycxhyv715#

错误的原因是“程序文件”之间的空格。在配置时,在所有路径中将其替换为progra~1

相关问题