Windows启动HDFS报错 - Could not locate Hadoop executable: E:soft_workhadoop-2.6.0binwinutils.exe

时间:2022-07-28
本文章向大家介绍Windows启动HDFS报错 - Could not locate Hadoop executable: E:soft_workhadoop-2.6.0binwinutils.exe,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

环境

  • 操作系统: Windows 7
  • Hadoop版本: 2.6.0

问题描述

Windows 7 环境下启动 HDFS,执行 start-dfs.cmd 出现Could not locate Hadoop executable: E:soft_workhadoop-3.0.0binwinutils.exe,报错信息如下:

2020-10-14 13:33:08,328 WARN checker.StorageLocationChecker: Exception checking StorageLocation [DISK]file:/E:/soft_work/hadoop-3.0.0/data/hdfs/dfs/data
java.lang.RuntimeException: java.io.FileNotFoundException: Could not locate Hadoop executable: E:soft_workhadoop-3.0.0binwinutils.exe -see https://wiki.apache.org/hadoop/WindowsProblems
        at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:722)
        at org.apache.hadoop.util.Shell.getSetPermissionCommand(Shell.java:257)
        at org.apache.hadoop.util.Shell.getSetPermissionCommand(Shell.java:273)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:777)
        at org.apache.hadoop.fs.ChecksumFileSystem$1.apply(ChecksumFileSystem.java:508)
        at org.apache.hadoop.fs.ChecksumFileSystem$FsOperation.run(ChecksumFileSystem.java:489)
        at org.apache.hadoop.fs.ChecksumFileSystem.setPermission(ChecksumFileSystem.java:511)
        at org.apache.hadoop.util.DiskChecker.mkdirsWithExistsAndPermissionCheck(DiskChecker.java:192)
        at org.apache.hadoop.util.DiskChecker.checkDir(DiskChecker.java:98)
        at org.apache.hadoop.hdfs.server.datanode.StorageLocation.check(StorageLocation.java:216)
        at org.apache.hadoop.hdfs.server.datanode.StorageLocation.check(StorageLocation.java:52)
        at org.apache.hadoop.hdfs.server.datanode.checker.ThrottledAsyncChecker$1.call(ThrottledAsyncChecker.java:142)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.FileNotFoundException: Could not locate Hadoop executable: E:soft_workhadoop-3.0.0binwinutils.exe -see https://wiki.apache.org/hadoop/WindowsProblems
        at org.apache.hadoop.util.Shell.getQualifiedBinInner(Shell.java:605)
        at org.apache.hadoop.util.Shell.getQualifiedBin(Shell.java:578)
        at org.apache.hadoop.util.Shell.<clinit>(Shell.java:675)
        at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:78)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2871)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2896)

3. 解决方案

下载对应版本的 winutils.exe 放到 ./bin 目录下

下载地址 https://github.com/4ttty/winutils