hadoop运行WordCount报错 Failed to locate the winutils binary in the

csdnhadoop 2014-12-11 08:30:28
hadoop 2.3.0 linux下完全分布式安装
在windows下安装的Eclipse,运行WordCount报错如下:

2014-12-11 20:12:01,750 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(996)) - fs.default.name is deprecated. Instead, use fs.defaultFS
SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version
2014-12-11 20:12:02,760 WARN [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2014-12-11 20:12:02,812 ERROR [main] util.Shell (Shell.java:getWinUtilsPath(336)) - 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.
at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:318)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:333)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:326)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
at org.apache.hadoop.security.Groups.parseStaticMapping(Groups.java:92)
at org.apache.hadoop.security.Groups.<init>(Groups.java:76)
at org.apache.hadoop.security.Groups.getUserToGroupsMappingService(Groups.java:239)
at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:255)
at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:232)
at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:718)
at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:703)
at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:605)
at org.apache.hadoop.mapreduce.task.JobContextImpl.<init>(JobContextImpl.java:72)
at org.apache.hadoop.mapreduce.Job.<init>(Job.java:133)
at org.apache.hadoop.mapreduce.Job.<init>(Job.java:123)
at org.apache.hadoop.mapreduce.Job.<init>(Job.java:128)
at wc.WordCount.main(WordCount.java:103)
Job start!
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/protobuf/ServiceException
at org.apache.hadoop.ipc.ProtobufRpcEngine.<clinit>(ProtobufRpcEngine.java:69)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.apache.hadoop.conf.Configuration.getClassByNameOrNull(Configuration.java:1821)
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1786)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1880)
at org.apache.hadoop.ipc.RPC.getProtocolEngine(RPC.java:203)
at org.apache.hadoop.ipc.RPC.getProtocolProxy(RPC.java:537)
at org.apache.hadoop.hdfs.NameNodeProxies.createNNProxyWithClientProtocol(NameNodeProxies.java:334)
at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:241)
at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:141)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:569)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:512)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:142)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2316)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:90)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2350)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2332)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:369)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.addInputPath(FileInputFormat.java:466)
at wc.WordCount.main(WordCount.java:135)
Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 22 more
...全文
7956 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
puluowangsi63 2017-08-25
  • 打赏
  • 举报
回复
引用 8 楼 wulinshishen 的回复:
你把Linux上的Hadoop拷贝一份到Windows环境上
是直接拷贝到Windows的任意文件夹都可以吗?
CalumChambers 2016-09-21
  • 打赏
  • 举报
回复
引用 12 楼 a1240466196 的回复:
在Hadoop2.5.2,拷贝一个winutils.exe在bin目录下了,也配置了HADOOP_HOME环境变量,为什么还是报同样的错误啊?
哥们我跟你遇到了一样的问题,想问下你现在解决了嘛?
CalumChambers 2016-09-21
  • 打赏
  • 举报
回复
哥们我跟你遇到了一样的问题,想问下你现在解决了嘛?
Matty_Blog 2015-08-21
  • 打赏
  • 举报
回复
在Hadoop2.5.2,拷贝一个winutils.exe在bin目录下了,也配置了HADOOP_HOME环境变量,为什么还是报同样的错误啊?
csdnhadoop 2014-12-12
  • 打赏
  • 举报
回复
引用 10 楼 wulinshishen 的回复:
嗯,然后在代码里加上 System.setProperty("hadoop.home.dir", "d:/hadoop");并查看Windows环境下Hadoop目录下的bin目录下有没有winutils.exe,没有就下一个拷贝过去
谢谢,初步搞定了。
  • 打赏
  • 举报
回复
嗯,然后在代码里加上 System.setProperty("hadoop.home.dir", "d:/hadoop");并查看Windows环境下Hadoop目录下的bin目录下有没有winutils.exe,没有就下一个拷贝过去
csdnhadoop 2014-12-12
  • 打赏
  • 举报
回复
引用 8 楼 wulinshishen 的回复:
你把Linux上的Hadoop拷贝一份到Windows环境上
s
引用 8 楼 wulinshishen 的回复:
你把Linux上的Hadoop拷贝一份到Windows环境上
hi
引用 8 楼 wulinshishen 的回复:
你把Linux上的Hadoop拷贝一份到Windows环境上
是整个目录copy吗?
  • 打赏
  • 举报
回复
你把Linux上的Hadoop拷贝一份到Windows环境上
csdnhadoop 2014-12-12
  • 打赏
  • 举报
回复
引用 6 楼 wulinshishen 的回复:
是Windows环境下Hadoop目录下的bin目录下有没有winutils.exe,没有就下一个拷贝过去
我windows环境下没有安装hadoop啊?不太明白你的意思。是copywinutils.exe到hadoop的wordcount工程目录下面吗?
  • 打赏
  • 举报
回复
是Windows环境下Hadoop目录下的bin目录下有没有winutils.exe,没有就下一个拷贝过去
csdnhadoop 2014-12-12
  • 打赏
  • 举报
回复
引用 2 楼 wulinshishen 的回复:
System.setProperty("hadoop.home.dir", "d:/hadoop"); 检查一下Hadoop的bin目录下有没有winutils.exe
[hadoop@name01 src]$ pwd /home/hadoop/src [hadoop@name01 src]$ find . -name winutils.exe [hadoop@name01 src]$ 没有winutils目录的。
csdnhadoop 2014-12-12
  • 打赏
  • 举报
回复
引用 3 楼 sky_walker85 的回复:
为什么这么多人都要在windows下的eclipse连接linux下的hadoop集群呢,类似的问题出现好多了,根据提示信息首先看看存不存在bin\winutils.exe文件,然后在运行,再看输出信息
因为开发人员用的是windows系统啊,大家一般都用的是win7系统,直接用linux的比较少。我是想先搭建一个linux环境,让开发人员连接linux的hadoop集群来做开发。
skyWalker_ONLY 2014-12-12
  • 打赏
  • 举报
回复
为什么这么多人都要在windows下的eclipse连接linux下的hadoop集群呢,类似的问题出现好多了,根据提示信息首先看看存不存在bin\winutils.exe文件,然后在运行,再看输出信息
  • 打赏
  • 举报
回复
System.setProperty("hadoop.home.dir", "d:/hadoop"); 检查一下Hadoop的bin目录下有没有winutils.exe
少主无翼 2014-12-11
  • 打赏
  • 举报
回复
2014-12-11 20:12:02,812 ERROR [main] util.Shell (Shell.java:getWinUtilsPath(336)) - 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. Hadoop环境变量配置了吗

20,808

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧