更新时间:2022-09-30 GMT+08:00

批量更新

操作场景

支持根据RowKey的命名规则、RowKey的范围、字段名以及字段值进行批量更新。

操作步骤

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

hbase com.huawei.hadoop.hbase.tools.bulkload.UpdateData 
  -Dupdate.rowkey.start="row_start" 
  -Dupdate.rowkey.stop="row_stop" 
  -Dupdate.hfile.output=/user/output/  
  -Dupdate.qualifier=f1:c1,f2  
  -Dupdate.qualifier.new.value=0,a  
  'table1'     
  • -Dupdate.rowkey.start="row_start":表示开始行号为row_start。
  • -Dupdate.rowkey.stop="row_stop":表示结束行号为row_stop。
  • -Dupdate.hfile.output=/user/output/:表示执行结果输出路径为/user/output/。

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

执行以下命令,加载HFiles:

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

注意事项

  1. 批量更新会把满足条件的行对应的字段值替换为要更新的值。
  2. 如果要更新的字段上建有索引,批量更新是不允许的。
  3. 如果不设置执行结果输出文件,默认是(/tmp/updatedata/表名)。