開源工具 | 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

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文件夾之中
項目採用的技術棧:
  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
https://github.com/CCweixiao/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-Notes)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章