1、前言
最近入门Hbase,就在某课网上找了一个关于《HBase+SpringBoot实战分布式文件存储》的实战视频,跟着视频搭建了伪分布式的Hadoop+Hbase环境,然后使用Java Api进行Hbase的相关操作时,遇到了一些视频上并没有说明的坑,借此记录下来分享一下。
2.问题
(1)进行Hbase连接测试的时候,发现使用java api连接Hbase非常的慢。
(2)进行Hbase操作测试的时候,发现会报Can't not get locations的错误
3.解决
看了网上很多资料,一一尝试之后终于发现了解决上述两个问题的方法。在window中使用Java api连接Linux\Centos上的Hbase时,需要如下三个步骤:
(1)查看安装了Hbase的虚拟机的hostname
(2)在C:\Windows\System32\drivers\etc上的hosts文件中添加一句
192.168.33.131 bogon
(ip地址 hostname)
(3)查看虚拟机防火墙的状态,若开启了防火墙,则关闭
a)查看防火墙状态
systemctl status firewalld.service
b)关闭防火墙
systemctl stop firewalld.service
注意:这种方法关闭防火墙只是暂时性的,重启之后防火墙又开启了。若想永久关闭,网上有很多教程的
通过以上的三步骤之后,使用Java Api远程连接Hbase速度快了很多,而且也可以进行Hbase的各种操作了。
4.感想
小白一枚,虽然解决了问题,但是却不知道为什么这样做就能解决,不过只要每天都能够学一点,我相信以后一定能够知其然,也知其所以然的。