当前位置:   article > 正文

win10 安装 hadoop 3.3.1报错 Unable to load native-hadoop library_windows unable to load native-hadoop library for y

windows unable to load native-hadoop library for your platform... using buil

安装好hadoop后, 配置了HADOOP_HOME, Path

命令行执行 hdfs dfs -ls /

报错

2022-10-24 21:00:12,070 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
        at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)
        at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:793)
        at org.apache.hadoop.fs.FileUtil.canRead(FileUtil.java:1215)
        at org.apache.hadoop.fs.FileUtil.list(FileUtil.java:1420)
        at org.apache.hadoop.fs.RawLocalFileSystem.listStatus(RawLocalFileSystem.java:601)
        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1972)
        at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:2014)
        at org.apache.hadoop.fs.ChecksumFileSystem.listStatus(ChecksumFileSystem.java:761)
        at org.apache.hadoop.fs.shell.PathData.getDirectoryContents(PathData.java:269)
        at org.apache.hadoop.fs.shell.Command.recursePath(Command.java:439)
        at org.apache.hadoop.fs.shell.Ls.processPathArgument(Ls.java:242)
        at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:286)
        at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:270)
        at org.apache.hadoop.fs.shell.FsCommand.processRawArguments(FsCommand.java:121)
        at org.apache.hadoop.fs.shell.Command.run(Command.java:177)
        at org.apache.hadoop.fs.FsShell.run(FsShell.java:327)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90)
        at org.apache.hadoop.fs.FsShell.main(FsShell.java:390)

解决方案

网上的很多方法,有点乱,找篇很细致的讲解放这里, 其实主要是没有启动hadoop

Spark | Hadoop - Exception in thread “main” java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z - Spark by {Examples}

下载winutils.exe , 参考下面这个链接,内部比较新

GitHub - kontext-tech/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows

下载 

winutils.exe, hadoop.dll 放到 %HADOOP_HOME%\bin 目录, 有时可能需要将 hadoop.dll  放到 C:/Windows/System32 目录, 我验证了一下, 只需要放在bin目录即可, 不可以仅放system32,仅放这里没效果, 放 %HADOOP_HOME%\bin 目录 很重要, 再将重启命令行执行 

hdfs dfs -ls /

仍然报错

  1. C:\Users\HUAWEI>hdfs dfs -ls /
  2. Found 21 items
  3. 2022-10-24 21:07:59,378 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  4. -- file path: $Recycle.Bin
  5. 2022-10-24 21:07:59,422 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  6. -- file path: $WinREAgent
  7. 2022-10-24 21:07:59,459 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  8. -- file path: Config.Msi
  9. 2022-10-24 21:07:59,493 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  10. -- file path: Config.Msi
  11. 2022-10-24 21:07:59,527 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  12. -- file path: Documents and Settings
  13. 2022-10-24 21:07:59,562 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  14. -- file path: DumpStack.log.tmp
  15. 2022-10-24 21:07:59,595 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  16. -- file path: DumpStack.log.tmp
  17. 2022-10-24 21:07:59,629 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  18. -- file path: Intel
  19. 2022-10-24 21:07:59,665 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  20. -- file path: PerfLogs
  21. 2022-10-24 21:07:59,702 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  22. -- file path: PerfLogs
  23. 2022-10-24 21:07:59,737 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  24. -- file path: Program Files
  25. 2022-10-24 21:07:59,771 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  26. -- file path: Program Files (x86)
  27. 2022-10-24 21:07:59,808 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  28. -- file path: ProgramData
  29. 2022-10-24 21:07:59,845 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  30. -- file path: Python310
  31. 2022-10-24 21:07:59,882 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  32. -- file path: Recovery
  33. 2022-10-24 21:07:59,918 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  34. -- file path: Recycler
  35. 2022-10-24 21:07:59,957 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  36. -- file path: System Volume Information
  37. 2022-10-24 21:07:59,994 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  38. -- file path: System Volume Information
  39. 2022-10-24 21:08:00,032 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  40. -- file path: Users
  41. 2022-10-24 21:08:00,069 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  42. -- file path: Windows
  43. 2022-10-24 21:08:00,106 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  44. -- file path: Windows.old
  45. 2022-10-24 21:08:00,145 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  46. -- file path: hiberfil.sys
  47. 2022-10-24 21:08:00,182 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  48. -- file path: hiberfil.sys
  49. 2022-10-24 21:08:00,216 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  50. -- file path: jdk1.8.0_333
  51. 2022-10-24 21:08:00,255 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  52. -- file path: pagefile.sys
  53. 2022-10-24 21:08:00,293 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  54. -- file path: pagefile.sys
  55. 2022-10-24 21:08:00,328 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  56. -- file path: swapfile.sys
  57. 2022-10-24 21:08:00,364 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  58. -- file path: swapfile.sys
  59. drwxrwx--- - SYSTEM SYSTEM 4096 2022-10-08 11:20 /$Recycle.Bin
  60. drwxrwx--- - Administrators Administrators 0 2022-10-17 10:01 /$WinREAgent
  61. 2022-10-24 21:08:00,401 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  62. -- file path: Config.Msi
  63. 2022-10-24 21:08:00,440 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  64. -- file path: Config.Msi
  65. 2022-10-24 21:08:00,478 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  66. -- file path: Config.Msi
  67. drw-rw-rw- - 0 1970-01-01 08:00 /Config.Msi
  68. d-wx-wx--x - SYSTEM SYSTEM 4096 2022-10-19 14:37 /Documents and Settings
  69. 2022-10-24 21:08:00,514 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  70. -- file path: DumpStack.log.tmp
  71. 2022-10-24 21:08:00,551 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  72. -- file path: DumpStack.log.tmp
  73. 2022-10-24 21:08:00,587 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  74. -- file path: DumpStack.log.tmp
  75. -rw-rw-rw- 1 8192 1970-01-01 08:00 /DumpStack.log.tmp
  76. drwxrwx--- - Administrators SYSTEM 0 2022-10-24 20:50 /Intel
  77. 2022-10-24 21:08:00,623 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  78. -- file path: PerfLogs
  79. 2022-10-24 21:08:00,658 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  80. -- file path: PerfLogs
  81. 2022-10-24 21:08:00,695 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  82. -- file path: PerfLogs
  83. drw-rw-rw- - 0 1970-01-01 08:00 /PerfLogs
  84. drwxrwx--- - TrustedInstaller TrustedInstaller 12288 2022-10-24 17:24 /Program Files
  85. drwxrwx--- - TrustedInstaller TrustedInstaller 8192 2022-10-24 19:46 /Program Files (x86)
  86. drwxrwx--- - SYSTEM SYSTEM 8192 2022-10-24 19:46 /ProgramData
  87. drwxrwx--- - Administrators SYSTEM 4096 2022-10-17 15:09 /Python310
  88. drwxrwx--- - SYSTEM SYSTEM 0 2022-10-19 14:37 /Recovery
  89. drwxrwx--- - SYSTEM SYSTEM 0 2022-10-09 03:01 /Recycler
  90. 2022-10-24 21:08:00,738 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  91. -- file path: System Volume Information
  92. 2022-10-24 21:08:00,774 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  93. -- file path: System Volume Information
  94. 2022-10-24 21:08:00,813 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  95. -- file path: System Volume Information
  96. drw-rw-rw- - 4096 1970-01-01 08:00 /System Volume Information
  97. drwxrwxr-x - SYSTEM SYSTEM 4096 2022-10-19 14:37 /Users
  98. drwxrwx--- - TrustedInstaller TrustedInstaller 16384 2022-10-19 14:42 /Windows
  99. drwxrwx--- - SYSTEM SYSTEM 4096 2022-10-19 14:42 /Windows.old
  100. 2022-10-24 21:08:00,852 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  101. -- file path: hiberfil.sys
  102. 2022-10-24 21:08:00,887 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  103. -- file path: hiberfil.sys
  104. 2022-10-24 21:08:00,924 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  105. -- file path: hiberfil.sys
  106. -rw-rw-rw- 1 6807244800 1970-01-01 08:00 /hiberfil.sys
  107. d--------- - HUAWEI None 4096 2022-10-24 16:54 /jdk1.8.0_333
  108. 2022-10-24 21:08:00,961 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  109. -- file path: pagefile.sys
  110. 2022-10-24 21:08:00,998 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  111. -- file path: pagefile.sys
  112. 2022-10-24 21:08:01,035 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  113. -- file path: pagefile.sys
  114. -rw-rw-rw- 1 4710393856 1970-01-01 08:00 /pagefile.sys
  115. 2022-10-24 21:08:01,072 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  116. -- file path: swapfile.sys
  117. 2022-10-24 21:08:01,107 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  118. -- file path: swapfile.sys
  119. 2022-10-24 21:08:01,145 WARN nativeio.NativeIO: NativeIO.getStat error (2): 系统找不到指定的文件。
  120. -- file path: swapfile.sys
  121. -rw-rw-rw- 1 16777216 1970-01-01 08:00 /swapfile.sys

这里面的原因就可以理解了,找不到目录因为没有按教程开始hadoop

参考教程设置一遍 Hadoop2OnWindows - HADOOP2 - Apache Software Foundation

由于我设置了HADOOP_HOME及path

所以这个文件hadoop-env.cmd的修改就没有按教程来,而是这样

  1. set HADOOP_PREFIX=%HADOOP_HOME%
  2. set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop
  3. set YARN_CONF_DIR=%HADOOP_CONF_DIR%

根据需要, 需要修改数据存储目录的,修改一下

core-site.xml

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>/D:/hadoop-3.3.1/data/tmp</value>
  5. </property>
  6. <property>
  7. <name>dfs.name.dir</name>
  8. <value>/D:/hadoop-3.3.1/data/name</value>
  9. </property>
  10. <property>
  11. <name>fs.default.name</name>
  12. <value>hdfs://localhost:9000</value>
  13. </property>
  14. </configuration>

hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.data.dir</name>
  8. <value>/D:/hadoop-3.3.1/data/dfsdata</value>
  9. </property>
  10. </configuration>

mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.job.user.name</name>
  4. <value>%USERNAME%</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.framework.name</name>
  8. <value>yarn</value>
  9. </property>
  10. <property>
  11. <name>yarn.apps.stagingDir</name>
  12. <value>/D:/hadoop-3.3.1/data/%USERNAME%/staging</value>
  13. </property>
  14. <property>
  15. <name>mapreduce.jobtracker.address</name>
  16. <value>local</value>
  17. </property>
  18. </configuration>

yarn-site.xml

  1. <configuration>
  2. <property>
  3. <name>yarn.server.resourcemanager.address</name>
  4. <value>0.0.0.0:8020</value>
  5. </property>
  6. <property>
  7. <name>yarn.server.resourcemanager.application.expiry.interval</name>
  8. <value>60000</value>
  9. </property>
  10. <property>
  11. <name>yarn.server.nodemanager.address</name>
  12. <value>0.0.0.0:45454</value>
  13. </property>
  14. <property>
  15. <name>yarn.nodemanager.aux-services</name>
  16. <value>mapreduce_shuffle</value>
  17. </property>
  18. <property>
  19. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  20. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  21. </property>
  22. <property>
  23. <name>yarn.server.nodemanager.remote-app-log-dir</name>
  24. <value>/D:/hadoop-3.3.1/data/app-logs</value>
  25. </property>
  26. <property>
  27. <name>yarn.nodemanager.log-dirs</name>
  28. <value>/D:/hadoop-3.3.1/data/userlogs</value>
  29. </property>
  30. <property>
  31. <name>yarn.server.mapreduce-appmanager.attempt-listener.bindAddress</name>
  32. <value>0.0.0.0</value>
  33. </property>
  34. <property>
  35. <name>yarn.server.mapreduce-appmanager.client-service.bindAddress</name>
  36. <value>0.0.0.0</value>
  37. </property>
  38. <property>
  39. <name>yarn.log-aggregation-enable</name>
  40. <value>true</value>
  41. </property>
  42. <property>
  43. <name>yarn.log-aggregation.retain-seconds</name>
  44. <value>-1</value>
  45. </property>
  46. <property>
  47. <name>yarn.application.classpath</name>
  48. <value>%HADOOP_CONF_DIR%,%HADOOP_COMMON_HOME%/share/hadoop/common/*,%HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*</value>
  49. </property>
  50. </configuration>

修改完成后, 初始化

命令行中运行 

%HADOOP_HOME%\etc\hadoop\hadoop-env.cmd

执行完成,没有任何输出

可以通过打印 echo %HADOOP_PREFIX% 检查是否配置正确

然后接着初始化

%HADOOP_PREFIX%\bin\hdfs namenode -format

运行成功没有报错, 此时数据目录之tmp目录应该有内容

 

运行命令 

%HADOOP_PREFIX%\sbin\start-dfs.cmd 启动hadoop

启动成功,验证

cd %HADOOP_PREFIX%

上传一个文件

hdfs dfs -put README.txt /

检查文件是否上传成功

hdfs dfs -ls /

文件上传成功, 表示可用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/851291
推荐阅读
相关标签
  

闽ICP备14008679号