报错显示
有些同学在Windows下解压安装好Hadoop后执行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.
错误原因
这是因为在hadoop-env.cmd里面配置jdk路径时出错了,有以下两种可能:
- 一是因为jdk路径错了。
- 二是因为jdk的安装路径里面有空格,例如jdk直接安装在了Program Files文件夹里面。
解决办法
这里有三种解决办法:
将jdk重新安装一下,安装目录不要有中文和空格这些特殊字符,然后重新设置jdk路径。步骤如下:
1) 将JDK目录复制到C盘或者其他盘:C:\Java\ jdk1.8.0_40
2)编辑 etc hadoop hadoop-env.cmd并更改:设置JAVA_HOME = C:\Java\ jdk1.8.0_40
3)运行cmd并执行hadoop-env.cmd
4)再检查" hadoop version"是否仍在报错
图片如下所示:
- 如果是安装在C盘的Program Files文件夹里面,可以采用cmd字符替代,如下所示:
Progra~1 = 'Program Files' Progra~2 = 'Program Files(x86)'
在hadoop-env.cmd中添加以下配置:
set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_40\
要解决必须在没有空格的路径中安装另一个JDK的问题,可以使用Windows命令mklink创建符号链接。
步骤如下:
1)以管理员身份打开cmd提示符,创建符号链接。
在这里,我将Hadoop报错的路径(带有Program Files)设置为一个没有空格的简单路径。 / D 参数表示正在创建目录符号链接。如下:
mklink / D java_home" C: Program Files Java jdk1.7.0_65"
2)在hadoop-env.cmd中,将JAVA_HOME设置为您创建的符号链接:
设置JAVA_HOME = java_home
结语
每个人刚开始学习的时候都是小白,这个过程中或多或少的都会看看别人写的博客,过程中也可能会踩过很多坑。遇到问题的时候,我们可以记录下来,不管是对自己还是对其他学习的小伙伴都很有帮助。
程序员大多都是很孤独的,写作也可以让自己的孤独“有处安放”,多去表达,多点表达,对于不善言辞的程序员总是有很多好处,博文写作的过程中最重要的是思路清晰有条理,和敲代码最大的不同是,编程有了明确的目标,日复一日必成高手,而写作如果只是为了写而写,往往会失了初心,丢了本真。写作不仅可以提高言语表达能力,更可以培养持续做事情的毅力,最好得是能遇到很多志同道合的朋友。