环境
- 操作系统: Windows 7
- Hadoop版本: 2.6.0
问题描述
Windows 7 环境下启动 HDFS,执行 start-dfs.cmd 出现Could not locate Hadoop executable: E:\soft_work\hadoop-3.0.0\bin\winutils.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_work\hadoop-3.0.0\bin\winutils.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_work\hadoop-3.0.0\bin\winutils.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 目录下
网友评论