我在Hadoop中收到此错误,找不到可执行文件null \ bin \ winutils.exe

我是Hadoop系统的新手,我在尝试获取Hadoop(HDFS)的文件系统时遇到以下错误。该设置是在Ubuntu Server 15.05上运行的Hadoop。 以及在Windows上运行的Java程序,使用Java连接文件并将文件添加到Hadoop系统。

错误是:

15/07/14 11:23:30 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 15/07/14 11:23:30 ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. 

使用以下行参考:

  FileSystem hdfs = FileSystem.get(new URI("hdfs://10.0.0.1:54310"), configuration); 

更新:在花了3个小时谷歌搜索问题后回答了我自己的问题,如果有其他人遇到问题,我发现答案在这里

我下载了winutils.exe并将其放在C:/Bin/Winutils.exe中

然后我在函数的开头将以下行添加到我的项目中

  System.setProperty("hadoop.home.dir", "C:\\winutil\\"); 

如果直接采用Apache Hadoop 2.6.0发行版的二进制发行并尝试在Microsoft Windows上运行它,那么我们就会遇到

 ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path 

这些是在Windows上运行Hadoop所必需的(非可选)。 为此,您必须单独添加文件

只需下载并复制hadoop-common-2.6.0/bin文件夹的所有文件,然后将其粘贴到/ bin文件夹即可

请参阅此博客和此博客。