我在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文件夹即可
请参阅此博客和此博客。
- 使用Java访问HDFS中的文件
- 什么是Hadoop上的HDFS位置?
- hadoop中的mapreduce距离计算
- 将文件从HDFS复制到本地计算机
- CDH5.2:MR,无法初始化任何输出收集器
- Hadoop 2.0 JAR文件
- 错误:java.lang.IllegalArgumentException:即使使用变通方法,比较方法也违反了其一般合同
- 线程“main”中的exceptionjava.lang.UnsupportedClassVersionError,不支持的major.minor版本52.0
- 无法validationserde:org.openx.data.jsonserde.jsonserde