Windows环境下 Hadoop Error: JAVA_HOME is incorrectly set. 问题

本文详细记录了解决在Windows环境下配置Hadoop时遇到的JAVA_HOME路径配置错误问题,通过调整路径中包含空格的处理方式,成功运行MR程序并提交Job。

最近尝试在windows开发MR程序并且提交Job,在解压缩好hadoop,配置好环境变量后,

打开cmd 输入hadoop version 的时候出现以下错误:

Error: JAVA_HOME is incorrectly set.

   Please update F:\hadoop\conf\hadoop-env.cmd

出现这个问题,我首先打了下java -version

java version “1.8.0_91”
Java™ SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot™ 64-Bit Server VM (build 25.91-b15, mixed mode)

可以正确执行

然后确认了一下环境变量,貌似也没有错,JAVA_HOME的值为

C:\Program Files\Java\jdk1.8.0_91

怎么跑到hadoop上不识别了呢?

在网上搜索了下资料发现原来是路径上包含了一个空格

所以有以下2个解决办法:

1.用路径替代符

C:\PROGRA~1\Java\jdk1.8.0_91

PROGRA~1 ===== C:\Program Files 目录的dos文件名模式下的缩写
长于8个字符的文件名和文件夹名,都被简化成前面6个有效字符,后面~1,有重名的就 2,3,

2.用引号括起来

“C:\Program Files”\Java\jdk1.8.0_91

修改过以后测试OK~

系统提示找不到指定路径、`JAVA_HOME` 设置错误以及 `'-Xmx512m'` 不被识别为命令的问题,可能是由于 `hadoop-env.cmd` 文件配置不当导致。以下是解决这些问题的方法: ### 1. 检查 `JAVA_HOME` 配置 确保系统环境变量 `JAVA_HOME` 正确设置,且路径中没有空格。例如,正确的 `JAVA_HOME` 配置应该类似 `C:\Program Files\Java\jdk1.8.0_111` 这种格式,如果路径中有空格,可能会导致系统无法正确识别。 ### 2. 更新 `hadoop-env.cmd` 文件 在 `hadoop-3.3.0` 环境下,需要更新 `etc\hadoop\hadoop-env.cmd` 文件中的 `JAVA_HOME` 配置。 - 打开 `C:\dhc_hlk\hadoop-3.3.0\etc\hadoop\hadoop-env.cmd`(根据实际安装路径修改)。 - 找到 `set JAVA_HOME=` 这一行,将其修改为正确的 `JAVA_HOME` 路径,确保路径无误且无空格。例如: ```plaintext set JAVA_HOME=C:\Java\jdk1.8.0_111 ``` ### 3. 检查 `'-Xmx512m'` 问题 `'-Xmx512m'` 不被识别为命令,可能是因为 Java 环境配置不正确或者路径设置有误。确保 `JAVA_HOME` 正确设置后,还需要检查系统的 `Path` 环境变量中是否包含 `%JAVA_HOME%\bin`。 - 打开系统环境变量设置,找到 `Path` 变量。 - 确保其中包含 `%JAVA_HOME%\bin` 这一项,如果没有则添加进去。 ### 4. 验证配置 完成上述配置后,重新打开命令提示符窗口,再次执行 `hadoop version` 命令,检查问题是否解决。 ### 示例代码 以下是一个简单的检查 Java 环境变量的 Python 脚本: ```python import os java_home = os.environ.get('JAVA_HOME') if java_home: print(f"JAVA_HOME is set to: {java_home}") java_bin = os.path.join(java_home, 'bin', 'java.exe') if os.path.exists(java_bin): print("Java executable found.") else: print("Java executable not found.") else: print("JAVA_HOME is not set.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值