更新时间:2024-09-18 GMT+08:00
分享

使用BulkLoad工具批量删除HBase数据

操作场景

BulkLoad工具支持根据rowkey的取值模式、范围、字段名、字段值对HBase做批量删除。

使用BulkLoad工具批量删除HBase数据

执行如下命令删除从“row_start”到“row_stop”的行,并且把输出结果定向到“/output/destdir/”。

hbase com.huawei.hadoop.hbase.tools.bulkload.DeleteData  
  -Ddelete.rowkey.start="row_start"  
  -Ddelete.rowkey.stop="row_stop"   
  -Ddelete.hfile.output="/output/destdir/"  
  -Ddelete.qualifier="cf1,cf0:vch,cf0:lng:1000"  
  'table1'     
  • -Ddelete.rowkey.start="row_start":表示开始行号为“row_start”。
  • -Ddelete.rowkey.stop="row_stop":表示结束行号为“row_stop”。
  • -Ddelete.hfile.output="/output/destdir/":表示执行结果输出到“/output/destdir/”目录下。
  • -Ddelete.qualifier="cf1,cf0:vch,cf0:lng:1000":表示删除column family cf1中所有列,column family cf0中列为vch的列,column family cf0中列lng中值为1000的列。

当HBase已经配置透明加密后,“批量删除”操作注意事项请参考7

执行以下命令,加载HFiles。

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles <path/for/output> <tablename>

注意事项

  • 如果column qualifier上建有索引,在该字段的批量删除是会失败的,即不允许在建有索引的字段上执行批量删除。
  • 如果不设置执行结果输出数据文件(delete.hfile.output),默认是/tmp/deletedata/表名。

相关文档