使用docker快速体验hbase

2019-04-15 宋洋葱 宋洋葱

学习大数据相关技术的时候往往离不开hbase,用docker快速运行hbase是一个不错的选择。


如果没有安装docker可以参考这里先安装docker

然后拉取镜像hbase-docker

#拉取镜像
docker pull dajobe/hbase
#创建存储路径
cd ~ && mkdir data
#后台运行,镜像名为hbase-docker,可以自定义
docker run --name=hbase-docker -h hbase-docker -d -v $PWD/data:/data dajobe/hbase
#先查看镜像的虚拟ip
docker inspect hbase-docker |grep IPAddress
#把上一步查询到的虚拟ip加入到当前电脑的host(我的是172.17.0.2)
echo "172.17.0.2 hbase-docker hbase-docker" >> /etc/hosts

安装完后可以在docker中使用hbase-shell等命令

测试status\list\createhbase命令

$ docker exec -it  hbase-docker hbase shell
$ create 'my_table', {NAME => 'cf', COMPRESSION => 'SNAPPY'},{SPLITS => ['2','5','8','b','e']}

浏览器查看Hbase的web界面

假设安装docker的电脑ip为`192.168.31.235`

那么直接打开网页即可:`http://192.168.31.235:16010/master-status`

如果docker没有安装在本机,而是安装在其他服务器上,或者使用VMware/VirtualBox等安装在远程电脑上。 比如ip为192.168.31.235,hostname为myserver。

在myserver服务器上编辑文件vim ~/.ssh/config,内容如下:

Host myserver
Hostname 192.168.31.235
    LocalForward *:16010 hbase-docker:16010
    LocalForward *:9095 hbase-docker:9095
    LocalForward *:8085 hbase-docker:8085
    LocalForward *:9090 hbase-docker:9090

防火墙打开相应端口,然后在myserver上执行ssh myserver

即可访问hbase的web页面:http://192.168.31.235:16010/master-status

使用python连接hbase

$ pip install cython thriftpy happybase
import happybase
server = '192.168.31.235'
connection = happybase.Connection(server, 9090)
connection.create_table('table-name', { 'family': dict() } )
connection.tables()
table = connection.table('table-name')
table.put('row-key', {'family:qual1': 'value1', 'family:qual2': 'value2'})
for k, data in table.scan():
	print(k, data)

ps: 微信搜索公众号「下课了」,回复「it」,进入it微信群,有问题可提问,还能和it大佬一起学习交流。

参考