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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 1:这个问题都被大家玩烂了,这里我也记载一下,方便以后脑补: 1 SLF4J: Class path contains multiple SLF4J bindings. 2 SLF4J: Found binding in [jar:file:/E:/360Downloads/hadoop-2.

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了,问题解决。

停更......

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
分布式计算 Java Hadoop
java使用hbase、hadoop报错举例
java使用hbase、hadoop报错举例
90 4
|
1月前
|
SQL 分布式计算 Java
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
31 3
|
1月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
89 3
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
76 4
|
1月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
43 2
|
1月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
62 1
|
2月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
2月前
|
存储 缓存 监控
Java——图片文件位于 bin 目录下,下载新图片会导致应用程序重启
【9月更文挑战第22天】在Java应用中,若图片位于bin目录下且下载新图片导致应用重启,可能是因为部署方式不当或资源监控机制过于敏感。解决方法包括:更改图片存储位置至独立目录;配置应用服务器减少资源监控敏感度;使用独立资源服务器托管静态资源;优化代码减少资源重复加载。具体方案需根据应用实际情况和技术栈调整。
|
3月前
|
Java 测试技术
Java系列之判断字符串是为空或者null
这篇文章介绍了如何在Java中使用`isEmpty()`方法判断字符串是否为空或`null`,并提供了相应的测试用例来演示其用法。
|
3月前
|
IDE Java 测试技术
如何优雅地根治Java中Null值引起的Bug问题
【8月更文挑战第18天】在Java开发中,null 值是一个既常见又危险的存在。它常常是导致程序崩溃、难以调试的“罪魁祸首”。然而,通过一系列优雅的策略和实践,我们可以有效地减少甚至根除由 null 值引发的Bug。本文将从多个方面探讨如何做到这一点。
87 4