为了学习和测试Hbase,在Docker中安装Hbase Standalone和Phoenix。另外再安装GUI客户端Squirrel。上面三个组件都容器化,并实现互相访问。
- HBASE:基于列的NO SQL数据库,是HADOOP重要组成部分
- Phoenix:HBASE插件,提供HBASE的SQL操作语句,并提供JDBC接口
- Squirrel:是Phoenix主页上推荐的GUI客户端,基于JAVA编写,通过JDBC连接数据库。不仅仅用于Phoenix,也可以用于其它关系型数据库
安装Hbase和Phoenix
先下载好Hbase和Phoenix,分别是hbase 1.2.4和Phoenix 4.8.2(对应hbase1.2版本)
dockerfile
1 | # standalone hbase image with phoenix |
java:on是一个java环境
python是因为phoenix的命令行客户端sqlline.py
是基于python的,如果不需要运行,也可以不用安装
hbase-site.xml参考官网standalone的配置
hbase-site.xml
1 | <configuration> |
安装phoenix比较简单,只要把phoenix/lib目录下所有的jar文件拷贝到hbase/lib目录下,重启hbase服务就可以了。
运行Hbase
start_hbase.sh
1 |
|
新增网络hbase
,使得容器之间可以互相访问。
docker1.9版本之后的网络功能大大增强,对于用户自定义网络,内置了一个DNS,在同一个网络之下,可以通过hostname相互访问,不再需要container link
映射一个目录,保存hbase数据内容,这个目录对应hbase-site.xml中的hbase.rootdir
暴露端口16010,hbase WEB管理页面默认端口
hbase起来之后,实际上phoenix也起来了,在同一个容器里面可以运行phoenix命令行sqlline
1 | docker exec -it hbase /phoenix/bin/sqlline.py localhost |
为了测试用,也可以使用同一个镜像另起一个容器,运行sqlline
1 | docker run \ |
这里的–net hbase和hbase容器的net一致
sqlline.py指向hbase主机名,hbase主机名在运行hbase容器的时候定义
安装Squirrel
基于之前的DOCKER中运行GUI程序的镜像,安装Squirrel包,并做必要的配置
先将Phoenix/lib目录下的phoenix-4.8.2-HBase-1.2-client.jar
拷贝出来,这是phoenix客户端组件,需要加载到squirrel目录中
dockerfile
1 | # squirrel: hbase phonix client based on xcfe4:on |
xcfe4:on是自制的一个运行GUI应用程序的基础镜像,包括中文输入法
squirrel.xml是安装squirrel时的配置文件
squirrel通过
java -jar
安装,安装过程中,会和你交互回答很多配置项,这个文件回答了这些配置,实现自动安装
将phoenix客户端组件phoenix-4.8.2-HBase-1.2-client.jar
放到/squirrel/lib目录
将root用户的配置备份出来,运行时要用到
运行Squirrel
start_squirrel.sh
1 | #!/bin/sh |
运行squirrel,先要运行hbase和xwin
再设置DISPLAY环境变量传到容器中,10.0.75.1是本机DOCKER的网桥地址
DOCKER RUN的时候将root目录映射出来,很多squirrel的配置都要保存下来,–net要和hbase的net一致,保证squirrel可以访问到hbase,启动输入法fcitx和桌面xcfe4,这两个程序都安装在xcfe4:on镜像中。
拉起桌面以后,先将/root.backup中的配置拷贝回/root,这个动作只要做一次就够了。
1 | docker exec squirrel cp -R /root.backup/* /root/ |
启动squirrel
1 | docker exec squirrel /squirrel/squirrel-start.sh |
按照phoenix文档配置squirrel
- 新增Driver(Drivers -> New Drvier)
- 在”Add Driver”对话框中,设置”Name”为”Phoenix”,”Example URL”为”jdbc:phoenix:localhost”
- 在同一个对话框,设置”Class Name”为”org.apache.phoenix.jdbc.PhoenixDriver”
- 新增Alias(Aliases -> New Aliases)
- 在对话框中,”Name”设置为”Hbase_standalone”, “Driver”设置为”Phoenix”, “User Name”和”Password”留空
- URL设置为”jdbc:phoenix:hbase_standalone”,其中hbase_standalone为hbase的主机名
- 测试,通过后按”OK”关闭对话框
- 双击新增的alias,连接数据库即可
关闭squerrel容器后,所有配置都保存在当前目录的”./v”目录下,这个目录映射为容器内的”/root”目录
参考资料
hbase官方网站、下载页面和standalone配置
phoenix官方网站、下载页面和安装指导,安装指导中包括了squirrel配置
http://phoenix.apache.org/index.html