hbase 数据、数据表被误删恢复、备份

hbase误删数据

##创建名称空间
hbase(main):006:0> create_namespace 'lilin_test'
0 row(s) in 0.0920 seconds
hbase(main):008:0> list_namespace
NAMESPACE                                                                                                                                                                                                          
default                                                                                                                                                                                                                                                                                                                                                                                                                          
lilin_test 
##创建表,并插入数据
    hbase(main):012:0> create 'lilin_test:demo','f'
0 row(s) in 1.3430 seconds

=> Hbase::Table - lilin_test:demo
hbase(main):013:0> put 'lilin_test:demo','r1','f:name','aa'
0 row(s) in 0.1270 seconds

hbase(main):014:0> put 'lilin_test:demo','r1','f:age','16'
0 row(s) in 0.0080 seconds

hbase(main):015:0> put 'lilin_test:demo','r2','f:name','bb'
0 row(s) in 0.0100 seconds

hbase(main):016:0> put 'lilin_test:demo','r2','f:age','18'
0 row(s) in 0.0050 seconds

hbase(main):017:0> scan 'lilin_test:demo'
ROW                                                   COLUMN+CELL                                                                                                                                                  
 r1                                                   column=f:age, timestamp=1597126340904, value=16                                                                                                              
 r1                                                   column=f:name, timestamp=1597126330023, value=aa                                                                                                             
 r2                                                   column=f:age, timestamp=1597126361389, value=18                                                                                                              
 r2                                                   column=f:name, timestamp=1597126352918, value=bb                                                                                                             
2 row(s) in 0.0480 seconds

##删除数据
hbase(main):018:0> delete 'lilin_test:demo','r2','f:age'
0 row(s) in 0.0270 seconds

hbase(main):019:0> scan 'lilin_test:demo'
ROW                                                   COLUMN+CELL                                                                                                                                                  
 r1                                                   column=f:age, timestamp=1597126340904, value=16                                                                                                              
 r1                                                   column=f:name, timestamp=1597126330023, value=aa                                                                                                             
 r2                                                   column=f:name, timestamp=1597126352918, value=bb                                                                                                             
2 row(s) in 0.0110 seconds
##当数据被误删后,设置KEEP_DELETED_CELLS为true,防止数据被物理删除
hbase(main):001:0> describe 'lilin_test:demo'
Table lilin_test:demo is ENABLED                                                                                                                                                                                   
lilin_test:demo                                                                                                                                                                                                    
COLUMN FAMILIES DESCRIPTION                                                                                                                                                                                        
{NAME => 'f', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZ
E => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                                                                                                                                          
1 row(s) in 0.2860 seconds

hbase(main):002:0> alter 'lilin_test:demo',{NAME => 'f',KEEP_DELETED_CELLS => TRUE}
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.0150 seconds

hbase(main):003:0> describe 'lilin_test:demo'
Table lilin_test:demo is ENABLED                                                                                                                                                                                   
lilin_test:demo                                                                                                                                                                                                    
COLUMN FAMILIES DESCRIPTION                                                                                                                                                                                        
{NAME => 'f', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'TRUE', BLOCKSIZE
 => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                                                                                                                                           
1 row(s) in 0.0200 seconds
##通过RAW查看删除的数据
hbase(main):021:0> scan 'lilin_test:demo',{RAW => TRUE}
ROW                                                   COLUMN+CELL                                                                                                                                                  
 r1                                                   column=f:age, timestamp=1597126340904, value=16                                                                                                              
 r1                                                   column=f:name, timestamp=1597126330023, value=aa                                                                                                             
 r2                                                   column=f:age, timestamp=1597126402593, type=DeleteColumn                                                                                                     
 r2                                                   column=f:age, timestamp=1597126361389, value=18                                                                                                              
 r2                                                   column=f:name, timestamp=1597126352918, value=bb                                                                                                             
2 row(s) in 0.0130 seconds
##恢复数据
hbase(main):010:0> put 'lilin_test:demo','r2','f:age','18'
0 row(s) in 0.0520 seconds
hbase(main):009:0> scan 'lilin_test:demo'
ROW                                                   COLUMN+CELL                                                                                                                                                  
 r1                                                   column=f:age, timestamp=1597126340904, value=16                                                                                                              
 r1                                                   column=f:name, timestamp=1597126330023, value=aa                                                                                                             
 r2                                                   column=f:age, timestamp=1597126484106, value=18                                                                                                              
 r2                                                   column=f:name, timestamp=1597126352918, value=bb                                                                                                             
2 row(s) in 0.0260 seconds                                                                                                                                                                                                                                                                                                                                                                                                      

hbase 误drop表

##数据被误删后,最好5分钟内备份
hbase(main):014:0> exists 'lilin_test:demo'
Table lilin_test:demo does not exist                                                                                                                                                                               
0 row(s) in 0.0160 seconds

[root@massive-dataset-new-003 ~]#hadoop fs -cp /hbase/archive/* /tmp
[root@massive-dataset-new-003 ~]# hadoop fs -ls /tmp/data/lilin_test/demo
Found 1 items
drwxr-xr-x   - root supergroup          0 2020-08-11 14:46 /tmp/data/lilin_test/demo/75548ab27c2db7b410dcc8f96314bcc2

##新建一张表,与删除的表结构一样
hbase(main):015:0> create 'lilin_test:demo','f'
0 row(s) in 1.2350 seconds

=> Hbase::Table - lilin_test:demo

##将备份的数据拷贝至数据目录下
[root@massive-dataset-new-003 ~]# sudo -u hbase hadoop fs -cp /tmp/data/lilin_test/demo/75548ab27c2db7b410dcc8f96314bcc2 /hbase/data/lilin_test/demo/
[root@massive-dataset-new-003 ~]# hadoop fs -ls /hbase/data/lilin_test/demo
Found 3 items
drwxr-xr-x   - hbase hbase          0 2020-08-11 14:46 /hbase/data/lilin_test/demo/.tabledesc
drwxr-xr-x   - hbase hbase          0 2020-08-11 14:46 /hbase/data/lilin_test/demo/.tmp
drwxr-xr-x   - hbase hbase          0 2020-08-11 14:46 /hbase/data/lilin_test/demo/d65564c4839888c0b739c4493bc210b4
[root@massive-dataset-new-003 ~]# hadoop fs -ls /hbase/data/lilin_test/demo                                                                          
Found 4 items
drwxr-xr-x   - hbase hbase          0 2020-08-11 14:46 /hbase/data/lilin_test/demo/.tabledesc
drwxr-xr-x   - hbase hbase          0 2020-08-11 14:46 /hbase/data/lilin_test/demo/.tmp
drwxr-xr-x   - hbase hbase          0 2020-08-11 14:50 /hbase/data/lilin_test/demo/75548ab27c2db7b410dcc8f96314bcc2
drwxr-xr-x   - hbase hbase          0 2020-08-11 14:46 /hbase/data/lilin_test/demo/d65564c4839888c0b739c4493bc210b4

##恢复hbase元数据,并验证(hbase2.X版本不支持-repair)
sudo -u hbase hbase hbck -repair
sudo -u hbase hbase hbck -fixAssignments
hbase(main):008:0> scan 'lilin_test:demo'
ROW                                                   COLUMN+CELL                                                                                                                                                  
 r1                                                   column=f:age, timestamp=1597126340904, value=16                                                                                                              
 r1                                                   column=f:name, timestamp=1597126330023, value=aa                                                                                                             
 r2                                                   column=f:age, timestamp=1597127911513, value=20                                                                                                              
 r2                                                   column=f:name, timestamp=1597126352918, value=bb                                                                                                             
2 row(s) in 0.0100 seconds

hbase数据备份

##通过snapshot进行表备份
hbase(main):017:0> snapshot 'test_lilin','test_lilin_snapshot'
Took 1.0398 seconds                                                                                                                                                                                                
hbase(main):018:0> list_snapshots
SNAPSHOT                                              TABLE + CREATION TIME                                                                                                                                        
 test_lilin_snapshot                                  test_lilin (2020-08-20 11:01:10 +0800)                                                                                                                       
1 row(s)
Took 0.0372 seconds                                                                                                                                                                                                
=> ["test_lilin_snapshot"]
##删除旧表
hbase(main):019:0> disable 'test_lilin'
Took 0.5000 seconds                                                                                                                                                                                                
hbase(main):021:0> drop 'test_lilin'
Took 0.2635 seconds
##恢复表数据
hbase(main):034:0> restore_snapshot 'test_lilin_snapshot'
Took 0.7428 seconds
##测试表的可用性
hbase(main):036:0> scan 'test_lilin'
ROW                                                   COLUMN+CELL                                                                                                                                                  
 r1                                                   column=f:age, timestamp=1597891837030, value=11                                                                                                              
 r1                                                   column=f:name, timestamp=1597891869030, value=aa                                                                                                             
1 row(s)
Took 0.0131 seconds                                                                                                                                                                                                
hbase(main):037:0> enable 'test_lilin'
Took 0.0079 seconds                                                                                                                                                                                                
hbase(main):038:0> scan 'test_lilin'
ROW                                                   COLUMN+CELL                                                                                                                                                  
 r1                                                   column=f:age, timestamp=1597891837030, value=11                                                                                                              
 r1                                                   column=f:name, timestamp=1597891869030, value=aa                                                                                                             
1 row(s)
Took 0.0084 seconds                                                                                                                                                                                                
hbase(main):039:0> put 'test_lilin','r2','f:age','2'
Took 0.0068 seconds                                                                                                                                                                                                
hbase(main):040:0> put 'test_lilin','r2','f:name','bb'
Took 0.0033 seconds                                                                                                                                                                                                
hbase(main):041:0> scan 'test_lilin'
ROW                                                   COLUMN+CELL                                                                                                                                                  
 r1                                                   column=f:age, timestamp=1597891837030, value=11                                                                                                              
 r1                                                   column=f:name, timestamp=1597891869030, value=aa                                                                                                             
 r2                                                   column=f:age, timestamp=1597892816356, value=2                                                                                                               
 r2                                                   column=f:name, timestamp=1597892829147, value=bb                                                                                                             
2 row(s)
Took 0.0065 seconds 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值