本人小菜,如有错误或疏漏之处,请各位大牛批评指正,求共同进步。发表此博文,旨在帮助遇到类似问题的朋友一点小的建议或思路。废话少说,开始吧。。。
最近,因项目需要。Hbase数据量很大,项目组提出需要对Hbase中目前所有表(当前有5个)进行major_compact操作。是按照需要,每天凌晨3点自动执行major_compact操作。
具体实现:
前期方案:调用hbase相关API,如:hbaseadmin下面有major_compact方法。可以用java等一门程序语言,通过major_compact方法来控制Hbase的compact操作。但是,需要连接数据库具体操作;而且要打包程序,通过这个单独的应用程序来执行major_compact操作。
最后方案,我联想到既然在hbase shell下面有提供major_compact这个操作。那么是否可以采用类似shell脚本方式来管理hbase。答案是肯定的,搜集相关资料,我发现,hbase shell 是支持ruby相关操作的。于是我在ruby中去调用major_compact这个方法。验证结果是肯定的,在ruby下,major_compact就如在hbase shell中一样,成功地得到了执行。
具体步骤:
1. 在Linux中新建一个*.rb(rub