更新时间:2024-12-11 GMT+08:00

批量构建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”,单位为:秒。