3

我想向我的服务器调度程序添加一个任务来运行 hbase 的主要压缩。我怎样才能用java代码实现这个?

它可以针对单个区域或针对所有区域。我可以对某些特定的表空间进行主要压缩吗?

4

1 回答 1

3
...
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)

于 2012-11-13T09:45:41.757 回答