使用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/表名。