壹、故障现象
Microsoft Windows [版本 10.0.18362.239]
(c) 2019 Microsoft Corporation。保留所有权利。C:\Users\Chirius>hadoop version
系统找不到指定的路径。Error: JAVA_HOME is incorrectly set.
Please update C:\dhc_hlk\hadoop-2.8.5\etc\hadoop\hadoop-env.cmd
'-Xmx512m' 不是内部或外部命令,也不是可运行的程序
或批处理文件。C:\Users\Chirius>
贰、尝试解决
首先,本人遇见上述错的先决条件是:在安装 jdk 时,使用的是 jdk 的默认安装路径 C:Program FilesJavajdk1.xxxx,然后在 Windows 电脑上解压安装本地 hadoop,正确配置 hadoop 的系统环境变量 $HADOOP_HOME 及 $HADOOP_HOME/etc/hadoop/hadoop-env.cmd 文件的 java 安装路径前提下,报了上图中的这个错
报错分析:
在 Windows 中安装 jdk 时,如果是安装在 C:Program FilesJavajdk1.8.0_161 路径下,如果需要在其他组件中配置 java 的环境时,因为 C:Program Files 是 Windows 系统的系统盘,可能在某些场合下访问的时候,必须以 Windows 管理员的身份去访问,例如:我们在 Windows 中解压安装了 hadoop,那么需要在 $HADOOP_HOME/etc/hadoop/hadoop-env.cmd 文件中手动修改 java 的安装路径,即:set JAVA_HOME=C:Program FilesJavajdk1.8.0_161
而我们的 jdk 安装在 jdk 的默认安装路径下,所以该文件路径有可能需要管理员访问权限才可以访问,所以如果像上图中这样配置会导致 hadoop 安装失败,失败的原因则是未检测到 jdk 环境,才会报 Error: JAVA_HOME is incorrectly set.
叁、解决方法
将 $HADOOP_HOME/etc/hadoop/hadoop-env.cmd 文件中的 set JAVA_HOME=C:Program FilesJavajdk1.8.0_161 修改为 set JAVA_HOME=C:PROGRA~1Javajdk1.8.0_161 保存,然后重新在 cmd 窗口输入 hadoop version 命令,即可成功!
注意:在 $HADOOP_HOME/etc/hadoop/hadoop-env.cmd 文件中的这一行 set JAVA_HOME=C:PROGRA~1Javajdk1.8.0_161 中不能有空格!
Microsoft Windows [版本 10.0.18362.239]
(c) 2019 Microsoft Corporation。保留所有权利。C:\Users\Chirius>hadoop version
Hadoop 2.7.3
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled by root on 2016-08-18T01:41Z
Compiled with protoc 2.5.0
From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
This command was run using /D:/Seven/ways/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar
C:\Users\Chirius>