根据rowkey删除表中特定数据
一、背景
邮件内容:
二、备份表
三、删除操作
3.1 查看被删除的key
3.2 删除操作:需要逐行删除ROW的columns
表的多种备份方式
方法一:读取表中数据的方式
- 优点:官方推荐、安全
- 缺点:速度一般,无yarn的情况,200G/小时
步骤一:导出表 1.启用表 <pre> # su - hdfs $ hbase shell hbase(main):001:0> enable 'gt_dw:geohash7_lbs_gids_new' hbase(main):001:0> quit </pre>
2.创建目录并导出 <pre> $ hdfs dfs -mkdir -p /backup/hbase/gt_dw $ hbase org.apache.hadoop.hbase.mapreduce.Export gt_dw:geohash7_lbs_gids_new /backup/hbase/gt_dw/geohash7_lbs_gids_new </pre>
步骤二:导入表
1.创建同样表结构的表(名字可以不一致) <pre> # su - hdfs $ hbase shell hbase(main):001:0> create 'gt_dw:test_table',{NAME => 'inf', BLOOMFILTER => 'ROWCOL', VERSIONS => '3', COMPRESSION => 'SNAPPY', TTL => '15552000 SECONDS (180 DAYS)'} hbase(main):001:0> quit </pre>
2.导入表 <pre> $ hbase org.apache.hadoop.hbase.mapreduce.Import gt_dw:test /backup/hbase/gt_dw/geohash7_lbs_gids_new $ hbase hbck gt_dw:geohash7_lbs_gids_new $ hbase shell hbase(main):001:0> count 'gt_dw:geohash7_lbs_gids_new' hbase(main):001:0> scan 'gt_dw:geohash7_lbs_gids_new',{LIMIT => 10} </pre>
方法二:导出快照 (未验证)
- 优点:官方推荐
- 缺点:速度稍快
步骤一:创建快照
<pre>
$ hbase shell
> snapshot 'gx_dw:stat_rt_poi_user_flow_outdoor_gid_201706','stat_rt_poi_user_flow_outdoor_gid_201706_bak20180622'
> list_snapshots
</pre>
步骤二:导出快照
- 导出到HBase的data目录
$ hbase class org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot stat_rt_poi_user_flow_outdoor_gid_201706_bak20180622 -copy-to hdfs://getui-bi-hbasea/apps/hbase/data -mappers 16
步骤三:导入快照 $ hbase shell hbase(main):001:0> create 'gx_dw:stat_rt_poi_user_flow_outdoor_gid_201706', {NAME => 'inf', COMPRESSION => 'SNAPPY'} hbase(main):001:0> disable 'gx_dw:stat_rt_poi_user_flow_outdoor_gid_201706' hbase(main):001:0> restore_snapshot 'stat_rt_poi_user_flow_outdoor_gid_201706_bak20180622'
方法三:直接拷贝文件(待补充)
优点:速度超快
缺点:非官方推荐
重建hbase:meta表,解决hbase:meta表的RIT状态
1,找到meta在HDFS的实际位置并移出
#sudo -u hdfs hadoop fs -mv /hbase2/data/hbase/meta /user/heq
2.重启整个HBase集群,恢复hbase服务,保证meta 被rs正常托管
3.修复meta
# sudo -u hbase hbase hbck -fixMeta
4.分配region到rs,待region上线即可
# sudo -u hbase hbase hbck -fixAssignments