在Windows上安装Hadoop

时间:2014-11-18 08:59:24

标签: windows hadoop

在我的C盘中提取hadoop后,我尝试执行hadoop版本命令并获得以下错误。在我的环境变量中正确设置了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.

17 个答案:

答案 0 :(得分:22)

大多数答案建议复制JDK安装路径。但是,如果您不方便这样做,可以使用Windows short path设置路径名,以便所有应用程序都可以轻松访问路径。

设置env变量的概念,如果它包含空格:

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

答案 1 :(得分:16)

刚遇到同样的问题(Win 8.1 + Hadoop 2.7.0 [来自源代码])。

问题结果是java所在的路径名中的(ol'良好)空间(在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 version'是否还在抱怨(我的不是)

答案 2 :(得分:12)

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

答案 3 :(得分:4)

错误的原因是“程序文件”之间的空格。替换为 配置

时,所有路径中的PROGRA~1

答案 4 :(得分:3)

检查UIAlertView

如果是C:\ Program Files \ Java \ jdk1.7.0_65。然后你会遇到这样的问题。 进入C:\ MyDrive \ Java \ jdk1.7.0_65然后就解决了。 “程序文件”中的空间会产生问题。

路径为JAVA_HOME

如果您使用的是Windows,那么您肯定会遇到类似问题(由于X64和X86问题):

1。

FATAL datanode.DataNode:secureMain中的异常java.lang.NullPointerException 和

2

FATAL namenode.NameNode:无法启动namenode。 java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO $ Windows.access0(Ljava / lang / String; I)

解决方案:

link复制这些文件hadoop.dll,hadoop.exp,hadoop.lib,hadoop.pdb,libwinutils.lib,winutils.exe,winutils.pdb 到您的bin文件夹中的hadoop安装的loaction看起来像这样。 .. \ HadoopInstalled \的hadoop \ Hadoop的2.6.0 \ Hadoop的2.6.0 \ bin中

答案 5 :(得分:2)

将您的Java bin位置添加到path环境变量中。 像

path = path;$JAVA_HOME/bin

答案 6 :(得分:2)

要绕过必须在没有空格的路径中安装另一个JDK,可以使用Windows命令mklink创建符号链接。这是怎么回事。

  1. 以管理员身份打开cmd提示。
  2. 如果cmd提示符未在此处打开,则导航到C:\。
  3. 创建符号链接。在这里,我将Hadoop抱怨的路径(使用Program Files)设置为没有空格的更简单路径。 / D参数表示您正在创建目录符号链接。

    mklink / D \ java_home" C:\ Program Files \ Java \ jdk1.7.0_65"

  4. 在你的hadoop-env.cmd中,将你的JAVA_HOME设置为你创建的符号链接:

    设置JAVA_HOME = \ java_home

  5. 这对我有用。有关在Windows中创建符号链接的更多信息: http://www.windows7home.net/how-to-create-symbolic-link-in-windows-7/

答案 7 :(得分:2)

这个问题的解决方案很简单

大多数人都将JAVA_HOME设置为C:\ Program Files \ Java \ jdk1.8.0_121

这里有问题是空格和你需要做的是,将jdk1.8.0_121的内容复制到C盘中的文件夹,比如C:\ java

现在将此路径用作JAVA_HOME

答案 8 :(得分:1)

打开命令提示符并尝试此操作... echo%JAVA_HOME%然后检查java home set。如果没有设置java home。

检查here如何在Windows中设置JAVA_HOME

答案 9 :(得分:1)

错误:

>>hadoop version
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
HADOOP_HDFS_HOME not found

我想问题可能是以下任何一个:

  • 您尚未设置您尝试运行的程序的可执行文件的路径。
  • 设置的路径已损坏,并且您的目标可执行文件不存在。
  • 您可能已经设置了程序的路径,然后更改了该程序在您的文件系统上的位置,或者从未设置过该路径。

我的建议:

  • 在设置环境变量时检查路径。
  • java 文件夹和 Hadoop 文件夹都应该放在一个驱动器中。因此,请检查 java 文件夹和 Hadoop 文件夹的路径。
  • 检查您在编辑 hdfs-site.xml 文件时添加的路径。
  • 检查您在编辑 Hadoop-env.cmd 时添加的路径

注意:查看这篇文章以获取更多参考。 https://medium.com/analytics-vidhya/hadoop-setting-up-a-single-node-cluster-in-windows-4221aab69aa6

答案 10 :(得分:1)

请在hadoop-env.cmd中添加以下行。这应该是hadoop-env.cmd中注释后的第一行。

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

Progra〜1的简称是SFN

这没有必要将Java复制到其他答案中指定的其他目录中,并且您可以拥有专用于hadoop的Java版本。

答案 11 :(得分:1)

我也遇到了类似的问题,以下步骤解决了我的错误。

Download&在c:/java/

中安装Java
  

(如果在程序中安装了java,请确保路径是这样的   文件,然后hadoop-env.cmd将无法识别java路径)

Download Hadoop二进制分发。

设置环境变量:

JAVA_HOME = "c:/Java"
HADOOP_HOME="<your hadoop home>"
Path= "JAVA_HOME/bin"
Path = "HADOOP_HOME/bin" 

这是GitHub link,其中包含某些版本的Hadoop的winutils。

  

(如果您使用的版本不在列表中,请按照   在Windows上设置Hadoop的传统方法 - link

如果找到了您的版本,请将文件夹的所有内容复制粘贴到路径:/ bin /

  

设置所有.xml配置文件 - Link

最后在hadoop-env.cmd文件中设置JAVA_HOME路径

可能会解决'JAVA_HOME is incorrectly set.'错误

希望这有帮助。

答案 12 :(得分:0)

“@ echo on”将帮助我们追踪错误。消息显示在hadoop-config.cmd文件中。请将C:\ Program Files \ Java复制到C:\ Java并更改路径并尝试。这将有效。

答案 13 :(得分:0)

只需删除hadoop-env.cmd文件(C:\hadoop-2.8.0\etc\hadoop\hadoop-env.cmd)中的bin文件夹 “ C:\Java\jdk-9.0.1\bin”并设置下面提到的路径。这对我有用。

set JAVA_HOME="C:\Java\jdk-9.0.1"

答案 14 :(得分:0)

其他人回答这是因为JAVA_HOME路径中的空间,我不得不用Progra〜1替换Program Files。 但是我必须在环境变量和hadoop-env.cmd文件中都进行更改。 我发现相同的错误,直到在两个地方都将其更改。

答案 15 :(得分:0)

您可以在bin文件夹中调试hadoop.cmd文件,可能有一些命令会出现语法问题或提供不正确的路径。

打开hadoop.cmd文件并查看第一行&#34; @echo off&#34;将会在那里。改变&#34; @echo off&#34;到&#34; @echo on&#34;并保存。运行&#34; hadoop -version&#34;现在命令。它将显示命令的&#34;语法不正确的命令&#34;错误即将到来。纠正它,如果存在语法问题或某些路径问题可能。

答案 16 :(得分:0)

因此 Hadoop 不喜欢其任何环境变量中的空格。 所以我的建议是明确设置

  • JAVA_HOME
  • HADOOP_BIN_PATH
  • HADOOP_HOME

并对所有文件路径使用 C:\PROGRA~1\ 语法,避免空格。