我想向我的服务器调度程序添加一个任务来运行 hbase 的主要压缩。我怎样才能用java代码实现这个?
它可以针对单个区域或针对所有区域。我可以对某些特定的表空间进行主要压缩吗?
...
String tableName = "mytable";
Configuration conf = HBaseConfiguration.create();
conf.addResource(new Path("/home/user/hbase/conf/hbase-site.xml"));
HBaseAdmin admin = new HBaseAdmin(conf);
admin.majorCompact(tableName);
...
如果给定了表名,则将在该表的所有区域上调用压缩。参考majorCompact javadoc:
调用此代码后,您会在主 UI上的“当前正在运行的任务”下找到注释“压缩存储... ” (默认为端口 60010)