java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

1:这个问题都被大家玩烂了,这里我也记载一下,方便以后脑补:

 1 SLF4J: Class path contains multiple SLF4J bindings.
 2 SLF4J: Found binding in [jar:file:/E:/360Downloads/hadoop-2.4.1/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
 3 SLF4J: Found binding in [jar:file:/E:/360Downloads/hbase-0.99.2/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
 4 SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
 5 SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
 6 2017-12-18 18:06:27,778 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
 7 2017-12-18 18:06:27,786 ERROR [main] util.Shell (Shell.java:getWinUtilsPath(336)) - Failed to locate the winutils binary in the hadoop binary path
 8 java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
 9     at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:318)
10     at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:333)
11     at org.apache.hadoop.util.Shell.<clinit>(Shell.java:326)
12     at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
13     at org.apache.hadoop.security.Groups.parseStaticMapping(Groups.java:93)
14     at org.apache.hadoop.security.Groups.<init>(Groups.java:77)
15     at org.apache.hadoop.security.Groups.getUserToGroupsMappingService(Groups.java:240)
16     at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:255)
17     at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:232)
18     at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:718)
19     at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:703)
20     at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:605)
21     at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:256)
22     at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:252)
23     at org.apache.hadoop.hbase.security.User.getCurrent(User.java:156)
24     at org.apache.hadoop.hbase.security.UserProvider.getCurrent(UserProvider.java:88)
25     at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:215)
26     at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:119)
27     at com.hbaseTest.HbaseTest.init(HbaseTest.java:57)
28     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
29     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
30     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
31     at java.lang.reflect.Method.invoke(Method.java:606)
32     at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
33     at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
34     at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
35     at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
36     at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
37     at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
38     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
39     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
40     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
41     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
42     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
43     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
44     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
45     at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
46     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
47     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
48     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
49     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
50     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
51     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

我是测试Hbase创建数据表的时候遇到的这种问题,总之吧,window操作hadoop都会遇到这种问题:

 1 第一步:自己配置window的环境变量(很明显应该是HADOOP_HOME的问题。如果HADOOP_HOME为空,必然fullExeName为null\bin\winutils.exe。解决方法很简单,配置环境变量,)。
 2 第二步:不想重启电脑可以在程序里加上:
 3 System.setProperty("hadoop.home.dir", "C:\\Users\\Administrator\\Desktop\\hadoop-2.7.3\\hadoop-2.7.3");
 4 比如我添加到此处:
 5 @Before
 6     public void init() throws Exception {
 7         System.setProperty("hadoop.home.dir", "E:\\hadoop-2.6.4");
 8         // 配置
 9         config = HBaseConfiguration.create();
10         // zookeeper地址
11         config.set("hbase.zookeeper.quorum", "master,slaver1,slaver2");
12         // zookeeper端口
13         config.set("hbase.zookeeper.property.clientPort", "2181");
14         // 通过工厂模式创建一个Connection
15         connection = ConnectionFactory.createConnection(config);
16         // 通过Connection获取表连接
17         table = connection.getTable(TableName.valueOf("user"));
18 }
19 第三步:去https://github.com/srccodes/hadoop-common-2.2.0-bin/tree/master/bin    
20 下载winutils.exe文件复制到自己的E:\hadoop-2.6.4\bin目录里面。
21 第四步:重新运行程序就OK了,问题解决。

停更......

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吴小龙同學

Android 电量优化

为什么优化 现在智能手机基本能一天一充,如果一个应用耗电过多,肯定是有问题的,而开发中电量的优化可能是最容易被忽略的。 如何检测 1、手机设置-电池使用情况,查...

2607
来自专栏向治洪

android PakageManagerService启动流程分析

PakageManagerService的启动流程图 ? 1.PakageManagerService概述 PakageManagerService是andro...

33410
来自专栏大魏分享(微信公众号:david-share)

Ansible如何管理你的云:AWS、Openstack?你的运维也可以很帅!

一、云时代的运维 本文是我和李尧老师一起实验。李尧是红帽高级培训讲师,目前负责红帽中国区员工内部技术培训与认证。 物理机时代的运维,由于设备数量较少,运维人员的...

4416
来自专栏向治洪

vpn开发

VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内...

23910
来自专栏青枫的专栏

常用的 default.properties 文件 + 常用的 struts-default.xml 文件 + 常用的 struts-plugin.xml 文件 + 常用的 struts.xml 文件

常用的 default.properties 文件,所在位置:\struts-2.3.15.3-all\struts-2.3.15.3\apps\struts2...

544
来自专栏别先生

WARN conf.FlumeConfiguration: Could not configure sink sink1 due to: No channel configured for sink

3256
来自专栏dalaoyang

SpringBoot整合Redis

偷懒了几天,好几天没写springboot了。真的不是没什么可写,是因为坚持做一件事真的很难。 今天抽空弄了一个springboot整合redis的小例子。 ...

2875
来自专栏Golang语言社区

使用Go开发一个简单的服务器程序

最近有个小项目,需要一个简单的后台程序来支撑,本来想用Nodejs来做,但是由于本人js一直很菜,并且很讨厌callback,虽然我也很喜欢异步模型,但我一直都...

33710
来自专栏技术博文

Linux命令英文全称

su:Swith user  切换用户,切换到root用户 cat: Concatenate  串联 uname: Unix name  系统名称 df: Di...

3375
来自专栏Golang语言社区

使用Go开发一个简单的服务器程序

最近有个小项目,需要一个简单的后台程序来支撑,本来想用Nodejs来做,但是由于本人js一直很菜,并且很讨厌callback,虽然我也很喜欢异步模型,但我一直都...

2608

扫码关注云+社区