批量构建HBase全局二级索引数据
场景介绍
在用户的表中预先存在大量数据的情况下,可基于MapReaduce任务,批量构建已有数据的索引数据。
批量构建全局二级索引数据
- 只有处于INACTIVE状态的索引才能进行批量构建,如需重建索引数据,请先修改索引状态。
- 数据表中存在大量数据时,构建耗时较长,建议将nohup命令放在后台执行,避免操作被意外中断。
在HBase客户端执行以下命令可批量构建已有数据的索引数据:
hbase org.apache.hadoop.hbase.hindex.global.mapreduce.GlobalTableIndexer -Dtablename.to.index='table' -Dindexnames.to.build='idx1'
相关参数介绍如下:
- tablename.to.index:表示需修改索引状态的数据表的名称。
- indexnames.to.build:指定的需要批量生成数据的索引名,可以同时指定多个,用#号分隔。
- hbase.gsi.cleandata.enabled(可选):表示构建索引数据前是否需要清空索引表,默认值为“false”。
- hbase.gsi.cleandata.timeout(可选):表示构建索引数据前等待清空索引表超时时间,默认值为“1800”,单位为:秒。