HBase开源 | HBase表管理系统-HBaseManager2.0.2

微信扫一扫,分享到朋友圈

HBase开源 | HBase表管理系统-HBaseManager2.0.2

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

github

当然,你也可以选择在这里下载最新的发行包。

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 api

tag: 目前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

相关进程启动,且检查确定启动日志中没有报错之后,请在浏览器访问。

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文件夹之中

项目采用的技术栈:

  1. 核心框架:Spring Boot。

  2. 安全框架:Apache Shiro。

  3. 模板引擎:Thymeleaf。

  4. 持久层框架:MyBatis。

  5. 定时任务:Quartz。

  6. 数据库连接池:Druid。

  7. 工具类:Fastjson。

  8. 更多……

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

功能预览

@Service

public class   UserService   {

@Autowired

private HBaseTemplate hBaseTemplate;

@Test

public 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的过程当中,你发现了任何问题,欢迎下方留言。

微信扫一扫,分享到朋友圈

HBase开源 | HBase表管理系统-HBaseManager2.0.2

华为EMUI 11明示:多屏协同支持鸿蒙2.0手机

上一篇

家里被蹭网了怎么办?中国电信带来5个妙招

下一篇

你也可能喜欢

HBase开源 | HBase表管理系统-HBaseManager2.0.2

长按储存图像,分享给朋友