Hadoop学习问题6:Did not find winutils.exe

问题描述

IDEA执行HDFS的时候出现以下错误

21/12/06 22:38:58 WARN Shell: Did not find winutils.exe: {}
java.io.FileNotFoundException: Could not locate Hadoop executable: D:\main\hadoop-3.1.3\bin\winutils.exe -see https://wiki.apache.org/hadoop/WindowsProblems
at org.apache.hadoop.util.Shell.getQualifiedBinInner(Shell.java:620)
at org.apache.hadoop.util.Shell.getQualifiedBin(Shell.java:593)
at org.apache.hadoop.util.Shell.(Shell.java:690)
at org.apache.hadoop.util.StringUtils.(StringUtils.java:78)

原因分析

D:\main\hadoop-3.1.3\bin目录下不存在winutils.exehadoop.dll文件

解决

因为我用的是hadoop 3.1.3版本,但是在github上没有,所以可以取相近的版本3.1.2,由于github比较慢,这里就使用的Gitee。到这里边下载地址去下载里边的winutils.exehadoop.dll文件,并放到你安装目录下的bin目录下

在这里插入图片描述

其他

上述进行修补的操作,目前有部分的API会出现兼容问题,这里建议换成hadoop 3.1.2,本文发表的这个时间github上并没有3.1.3相关的包,使用3.1.2也是差不多---------hadoop3.1.2下载地址

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
windows上eclipse运行hadoop程序报NullPointerException错 log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Exception in thread "main" java.lang.NullPointerException     at java.lang.ProcessBuilder.start(ProcessBuilder.java:1010)     at org.apache.hadoop.util.Shell.runCommand(Shell.java:482)     at org.apache.hadoop.util.Shell.run(Shell.java:455)     at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)     at org.apache.hadoop.util.Shell.execCommand(Shell.java:808)     at org.apache.hadoop.util.Shell.execCommand(Shell.java:791)     at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:656)     at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:444)     at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:293)     at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:133)     at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:437)     at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296)     at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293)     at java.security.AccessController.doPrivileged(Native Method)     at javax.security.auth.Subject.doAs(Subject.java:415)     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)     at org.apache.hadoop.mapreduce.Job.submit(Job.java:1293)     at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1314)     at com.lxz.mr.WCApp.main(WCApp.java:27) 原因是hadoop.dll文件和winutils.exe文件缺失了。解决步骤为: 1,下载这两个文件,下载地址:https://download.csdn.net/download/luxiangzhou/10635946 2,解压之后,把hadoop.dll拷贝到C:\Windows\System32下面 3,创建环境变量HADOOP_HOME,然后把winutils.exe文件拷贝到${HADOOP_HOME}/bin目录下
"did not find winutils.exe: {}" 表示在某个操作中没有找到 winutils.exe 这个文件。winutils.exe 是一个与 Hadoop 相关的执行文件,用于在 Windows 操作系统上执行 Hadoop 命令和操作。 这个错误可能是由于以下几个原因所致: 1. 缺少 winutils.exe 文件:这可能是因为该文件没有正确安装或位于错误的目录中。需要确保安装的 Hadoop 版本正确,并且安装过程中没有出现任何问题。 2. 环境变量配置错误:Hadoop 需要将 winutils.exe 的路径添加到系统的环境变量中,以便在任何地方都可以访问它。请确保环境变量配置正确,路径设置正确,且没有拼写错误。 3. 文件权限问题winutils.exe 文件可能存在权限问题,导致无法读取或执行。尝试检查该文件的权限,并确保您具有足够的权限来访问和执行它。 解决此问题的方法如下: 1. 重新安装 Hadoop:尝试重新安装正确版本的 Hadoop,并确保安装过程中没有出现任何问题。确保安装后 winutils.exe 文件正常存在于指定的路径中。 2. 配置环境变量:手动将 winutils.exe 的路径添加到系统的环境变量中。在命令行窗口中运行 setx HADOOP_HOME "<hadoop路径>" 命令,将 Hadoop 的安装路径添加到环境变量中。 3. 检查文件权限:在文件资源管理器中找到 winutils.exe 文件,右键单击它并选择“属性”,然后选择“安全”选项卡。确保当前用户具有适当的权限来访问和执行该文件。 选择适当的方法来解决该问题,以确保 winutils.exe 能够被正确地找到和执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值