使用Maven的Java项目,连接Hbase服务器不会报错,但是将相同的代码,拷贝到Spring Boot项目中就会报错,怀疑过是不是容器出了问题。
Could not locate executable null\bin\winutils.exe in the Hadoop binaries
百度查询各种答案,发现网络博客口径普遍都是说 缺少Hadoop的系统环境变量,如果下载的Hadoop 的bin包,存放到本地,同时制定,路径,但是启动还是报错,null\bin\winutils.exe 找不到 这个执行文件,于是在查阅Hbase相关内容的博客时候,返现了有人使用欺骗电脑的手法,手动创建这个文件,如果怀着试一试的态度,发现方案可行!
代码如下:
File workaround = new File(".");
System.getProperties().put("hadoop.home.dir", workaround.getAbsolutePath());
new File("./bin").mkdirs();
new File("./bin/winutils.exe").createNewFile();
启动Spring Boot 使用Postman进行测试,发现 立马就不报错了,然后怀疑是不是这个文件创建一次就够了,于是将上述代码注释,再次启动,发现还是会报同样错,上述方法其实就是欺骗Hadoop程序,防止文件找不到报错,虽然上述报错,不影响代码调用,使用,但是控制台出错还是挺别扭的......
如有疑问欢迎留言讨论............