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

最近尝试在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(TM) SE Runtime Environment (build 1.8.0_91-b15)
Java HotSpot(TM) 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~


### 解决Yarn版本命令执行时因JAVA_HOME配置错误和Hadoop日志目录参数未被识别的问题 在使用Yarn命令时,如果遇到`JAVA_HOME incorrectly set`的错误提示,通常是因为系统环境变量`JAVA_HOME`未正确设置或指向了无效的Java安装路径。此外,Hadoop的日志目录配置参数`-Dhadoop.log.dir`在`hadoop-env.cmd`中可能未被正确解析,导致命令无法识别该参数。 以下是针对这两个问题的详细解决方案: #### 1. 配置JAVA_HOME环境变量 确保系统中的`JAVA_HOME`环境变量已正确设置为有效的Java安装路径。可以通过以下步骤验证并修正: - 打开系统的环境变量设置界面。 - 确认`JAVA_HOME`指向的是Java开发工具包(JDK)的根目录,例如`C:\Program Files\Java\jdk-11.0.12`[^1]。 - 在`Path`环境变量中添加`%JAVA_HOME%\bin`以确保命令行能够找到Java可执行文件。 - 使用命令`java -version`测试Java是否正常工作。 #### 2. 修改hadoop-env.cmd文件 对于`'-Dhadoop.log.dir' not recognized command`的问题,需要检查Hadoop配置文件`hadoop-env.cmd`是否正确设置了日志目录参数。具体操作如下: - 打开`hadoop-env.cmd`文件,通常位于Hadoop安装目录下的`etc/hadoop`文件夹中。 - 查找或添加以下内容以确保日志目录参数被正确传递: ```cmd set HADOOP_LOG_DIR=D:\hadoop\logs ``` - 如果需要动态传递参数,可以将以下内容添加到脚本中: ```cmd set HADOOP_OPTS=%HADOOP_OPTS% -Dhadoop.log.dir=%HADOOP_LOG_DIR% ``` #### 3. 验证Yarn版本命令 完成上述配置后,重新运行`yarn -v`命令以验证Yarn版本是否能够正常显示。如果仍然存在问题,可以尝试以下方法: - 清理缓存并重启命令行窗口以确保环境变量更新生效。 - 检查Hadoop安装目录下是否存在`yarn`相关的可执行文件,并确认其路径已添加到系统`Path`环境变量中。 #### 4. 示例代码:验证配置 以下是一个简单的批处理脚本,用于验证`JAVA_HOME`和`HADOOP_LOG_DIR`的配置是否正确: ```batch @echo off echo JAVA_HOME: %JAVA_HOME% echo HADOOP_LOG_DIR: %HADOOP_LOG_DIR% java -version yarn -v pause ``` 通过运行此脚本,可以快速确认Java和Yarn的配置状态。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值