1. 前言
在之前的文章中已经为大家简单介绍过HBaseManager,它提供界面化的方式来帮助我们有效地管理我们集群的HBase表信息。在HBase的维护工作中,绝大多数需要在HBase Shell下执行的命令,都可以选择在系统中完成。HBaseManager部署方便,一键启动,界面美观大方,功能流畅友好,绝对能成为你HBase运维工作中的一大助力。经过近一个月的开发迭代与BUG修复,系统的基本功能已经打磨完毕,同时决定开放源码。目前HBaseManger的最新稳定版本是2.0.2,如果你对此颇有兴趣,可以从我Gitee或GitHub的个人仓库里克隆出所有的源代码,整个系统采取MIT协议,除非你把源码用于违法犯罪活动,否则,你不会受到任何法律或道德上的谴责。
2. 源码获取
鉴于Github的网速,源码同时托管于Gitee。
git clone https://gitee.com/weixiaotome/hbase-manager.git
git clone https://github.com/CCweixiao/hbase-manager.git
gitee
![39dc77b8b193d736ddfe359cd2630047.png](https://img-blog.csdnimg.cn/img_convert/39dc77b8b193d736ddfe359cd2630047.png)
github
![dff9fa4c08400c1fbb84f9a551e90b27.png](https://img-blog.csdnimg.cn/img_convert/dff9fa4c08400c1fbb84f9a551e90b27.png)
当然,你也可以选择在这里下载最新的发行包。
replease
3. 编译部署
3.1 开始编译
HBaseManager由Java8开发,用maven进行项目依赖管理,所以你需要保证你的编译环境里安装了Java8和maven3.6+。maven3.5+应该也是可以的。
# 进入项目所在的根目录
cd hbase-manager
mvn clean package -Dmaven.test.skip=true -Phbase1.x
or
mvn clean package -Dmaven.test.skip=true -Phbase2.x
-Phbase1.x 默认加载hbase1.x的client api -Phbase2.x 默认加载hbase2.x的client apitag: 目前HBaseManager对HBase2.0的支持度还不是很友好,但1.4.3的Client API应该还是可以操作HBase2.x的集群的。打包成功后,在hbase-manager-admin/target/dist目录下找到我们打包的安装包。如果想适配自己集群的HBase版本,请移步至pom.xml文件中修改,然后自行编译就好。
3.2 开始部署
示例命令:
tar -zxvf hbase-manager-2.0.2.tar.gz
rm -f hbase-manager-2.0.2.tar.gz
cd /opt/hbase-manager-2.0.2
hbase-manager的目录结构:
setup
- bin 系统启动脚本等文件的存放目录
- conf 配置文件,以及静态文件
- lib 第三方jar包保存目录
- logs 系统运行日志保存目录
conf目录
conf
- application-druid.yml 数据源配置文件
- application.yml 系统本身配置文件
其余文件都不需要管,我们重点需要配置数据源,编辑application-druid.yml,各个配置项的作用说明,在配置文件中都有十分详细的说明。
edit-datasource
保证MySql可以连接,最好用MySql5.7,新建数据库hbase-manager,配置好连接数据库的用户名和密码,然后运行sql文件初始化所需的表和数据,sql文件在conf/sql文件夹下,名为hbase-manager.sql。
系统级别配置系统配置一般不做修改,如果有需要请编辑application.yaml。配置文件中各个配置项的作用说明也十分详细,就不占用此处的空间。简单的初始化工作完成之后,就可以尝试运行我们的系统,系统启动的命令更简单。示例命令:
cd /opt/hbase-manager-1.0.0
nohup java -jar hbase-manager-admin-1.0.0.jar > /dev/null 2>&1 &
相关进程启动,且检查确定启动日志中没有报错之后,请在浏览器访问。
http://ip:9527/login
index
4. 开始使用
目前系统支持的功能有:
- 命名空间管理
- HBase表管理 如:创建表,禁用表,查看表详情,删除表等
- HBase列簇管理
- 标签管理 标签管理可以更好地帮助对HBase相同业务域的表进行分类
- HBase表数据管理 筛选表的数据,删除表的数据等。
- 完善的角色、用户、部门权限的划分
- 定时任务
- 还有更多
4.1 命名空间管理
命名空间的创建和删除。
NAMESPACE
4.2 HBase表管理
HBase表信息列表展示,以及十分友好的搜索提示与分页功能。
table-list
HBase表创建:
create-table
HBase表详情查看:
table-detail
4.3 HBase表列簇管理
family
4.4 HBase表标签管理
tag
4.5 HBase表数据筛选
show-data
4.6 用户以及权限管理
user-role
5. 二次开发
5.1 RuoYi
用IDEA直接打开项目。
project
- hbase-manager-admin 是系统的web模块,标准的SpringBoot的工程,程序的主入口
- 系统配置文件、数据源配置文件以及web相关的静态文件均在该模块的resources文件夹之中
项目采用的技术栈:
- 核心框架:Spring Boot。
- 安全框架:Apache Shiro。
- 模板引擎:Thymeleaf。
- 持久层框架:MyBatis。
- 定时任务:Quartz。
- 数据库连接池:Druid。
- 工具类:Fastjson。
- 更多……
HBaseManager基于RuoYi后台管理系统开发而成,其官网网站有更详细的关于RuoYi框架的说明,很赞很强大,如果之前没对RuoYi有所了解,可以参考其官网文档。
http://doc.ruoyi.vip/
5.2 hbase-sdk
hbase-sdk是我的另一个开源作品,基于HBase的ORM框架,可以与SpringBoot无缝集成,也可以使用在普通项目之中。hbase-sdk对hbase-client做了又一层统一的封装,赋予其ORM的特性,很方便地实现HBase查询的结果数据与模板对象进行属性绑定。
项目地址
https://gitee.com/weixiaotome/hbase-sdk
https://github.com/CCweixiao/hbase-sdk
功能预览
@Servicepublic class UserService {@Autowiredprivate HBaseTemplate hBaseTemplate;@Testpublic void testGet() {
UserEntity userEntity = hBaseTemplate.getByRowKey("10001", UserEntity.class);final UserEntity userEntity1 = hBaseTemplate.getByRowKey("10002", UserEntity.class);
System.out.println("用户数据获取成功!");
System.out.println(userEntity);
}
}
代码获取
git clone https://github.com/CCweixiao/hbase-sdk.git
git clone https://gitee.com/weixiaotome/hbase-sdk.git
cd hbase-sdk
mvn clean install -Dmaven.test.skip=true
maven中央仓库中搜索 CCweixiao
maven1
maven2
6. 总结
hbase-sdk和hbase-manager算是我编程入行以来第一个真正意义上的开源作品,也是我头一回在没有工资驱动的情况下,坚持做完整的一件事。它们的功能或许很简单,它们的实现方式或许很拙劣,甚至相比于其他世界顶级的项目,它们渺小的犹如尘埃。但是,把脑海中一个迸发的念头,一点一滴具象成一个看得见摸得着的表现形式,真的是一件非常酷的事情。但是,个人的能力毕竟有限,如果你也有兴趣想要完善这个系统,可以参与开发,提交建议,或者在使用HBaseManager的过程当中,你发现了任何问题,欢迎下方留言。
据说,关注我的人都找到了对象?