由于hbase依赖于hadoop,所以想要使用hbase必须先要安装hadoop(主要是我懒),我们可以通过docker使用别人安装好的hbase.
安装docker
docker的安装很简单,请参考http://www.runoob.com/docker/centos-docker-install.html
查看hbase镜像
首先查看关于hbase的镜像有哪些,运行 docker search hbase
![eddc444211c827e0889b0ea492183192.png](https://i-blog.csdnimg.cn/blog_migrate/ede06852e8a8d1de9029d35253c112f6.jpeg)
我们就使用第一个好了,毕竟star最多。
拉取镜像
使用命令 docker pull harisekhon/hbase
就会将镜像拉取到本地。然后查看当前本地存在哪些镜像
![b541d0e21473274cda407b4f796a45b6.png](https://i-blog.csdnimg.cn/blog_migrate/ffe70b1e21e72ccc04cf3f115023ff68.jpeg)
运行hbase容器并进入容器内部
docker run -dit harisekhon/hbase
启动容器,默认的版本是latest,如果运行的版本不是需要加上版本,比如docker run -dit harisekhon/hbase:1.0
![7a8d4cee97e8ec26e115f963b69b84cd.png](https://i-blog.csdnimg.cn/blog_migrate/2d90a55d4d4d32c547d89888de681294.png)
docker exec -it dc0716 bash
(进入容器内部,这里的dc0716是容器id前几位)
![32249a6f9ab1f24c9aed12b2128fa2c1.png](https://i-blog.csdnimg.cn/blog_migrate/e8c1b78e31bd68f506ca6fbe0b56646c.jpeg)
可以看到此时容器内的hbase目录
运行hbase命令
![e35b194096ff34d234dcb3efba12283e.png](https://i-blog.csdnimg.cn/blog_migrate/29694597a984f6316e79d41ab6082b63.jpeg)
运行了./hbase shell
命令后就进入了hbase shell命令行,此时可以用命令的方式查看hbase状态,新建表等 由于我们安装的hbase镜像是一个伪分布式的,只有一个服务器,所以查看状态显示只有一个server
![1ade4cf784213c578b7ceb7f7dff59e3.png](https://i-blog.csdnimg.cn/blog_migrate/989bcf48501bbe689ab6e663fcb2214a.png)
连接服务器的hbase
hbase默认使用的配置文件是hbase-site.xml位于hbase安装路径下的conf目录,有时候我们可能没有权限连接远程服务器,但是又想要看hbase的数据怎么办呢?这个时候可以修改hbase-site.xml中的配置连接上远程服务器。将项目中的hbase-site.xml替换默认的hbase-site.xml然后重新进入hbase shell即可。但是需要注意的是由于我们使用的docker,所以每次虚拟机关闭之后对hbase容器的修改都会还原,所以如果想要修改之后一直生效可以将修改保存成另一个镜像。
- 替换自带的hbase-site.xml
- docker commit containerId saveImageName:version
比如: docker commit 430d centor-tar:1.0
之前也提到了hbase需要依赖于hadoop以及zookeeper,hbase自带了一个zookeeper,可以不使用它,而使用已有的zookeeper。所以能连接远程hbase服务器主要是因为我们在hbase-site.xml中配置了hadoop以及zookeeper的地址,这两个配置项的属性如下
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9020/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
这里的localhost:9020需要替换成对应服务器上Hadoop的地址以及端口,通过它们的配置我们就可以去hbase shell上愉快的操作hbase了。