在建设一个snapshot之后:snapshot 'test', 'snapshot_test',在/hbase/.hbase-snapshot目次信息如下:
- hbaseuser~> hadoop fs -ls /hbase/.hbase-snapshot/snapshot_test
- Found 4 items
- -rw-r--r-- 1 hbaseuser supergroup 32 2017-12-01 12:13 /hbase/.hbase-snapshot/snapshot_test/.snapshotinfo
- drwxr-xr-x - hbaseuser supergroup 0 2017-12-01 12:13 /hbase/.hbase-snapshot/snapshot_test/.tabledesc
- drwxr-xr-x - hbaseuser supergroup 0 2017-12-01 12:13 /hbase/.hbase-snapshot/snapshot_test/.tmp
- drwxr-xr-x - hbaseuser supergroup 0 2017-12-01 12:13 /hbase/.hbase-snapshot/snapshot_test/d8340c61f5d77345b7fa55e0dfa9b492
在clone_snapshot之后:clone_snapshot 'snapshot_test','new_test',在/hbase/archive/data/default目次,有对原表的link目次,目次名只是在原HFile的文件名基本上加了个links-前缀,这样我们可以通过这个来定位到原表的HFile,如下所示:
- hbaseuser:~> hadoop fs -ls /hbase/archive/data/default/test/d8340c61f5d77345b7fa55e0dfa9b492/i
- Found 1 items
- drwxr-xr-x - hbaseuser supergroup 0 2017-12-01 12:34 /hbase/archive/data/default/test/d8340c61f5d77345b7fa55e0dfa9b492/i/.links-55c5de40f58f4d07
此时,再执行归并操纵:major_compact 'new_test',会发明/hbase/archive/data/default/目次已经酿成了现实表的数据文件,上面图中/hbase/archive/data/default/test/d8340c61f5d77345b7fa55e0dfa9b492/i/.links-55c5de40f58f4d07这个已经不在了,取而代之的是如下所示文件:
- hbaseuser:~> hadoop fs -ls /hbase/archive/data/default/new_test/7e8636a768cd0c6141a3bb45b4098910/i
- Found 1 items
- -rw-r--r-- 1 hbaseuser supergroup 0 2017-12-01 12:48 /hbase/archive/data/default/new_test/7e8636a768cd0c6141a3bb45b4098910/i/test=d8340c61f5d77345b7fa55e0dfa9b492-55c5de40f58f4d07aed767c5d250191c
在现实的/hbase/data/default/new_test目次也是现实的原表的数据文件,这样完成了表数据的迁徙。
3.3.3 snapshot数据迁徙
snapshot的应用场景和上面CopyTable描写差不多,我们这里首要思量的是数据迁徙部门。数据迁徙首要有以下几个步调:
A.建设快照:在原集群上,用snapshot呼吁建设快照,呼吁如下:
- hbase> snapshot 'src_table', 'snapshot_src_table'
- #查察建设的快照,可用list_snapshots呼吁
- hbase> list_snapshots
- #假如快照建设有题目,可以先删除,用delete_snapshot呼吁
- hbase >delete_snapshot 'snapshot_src_table'
建设完快照后在/hbase根目次会发生一个目次:
- /hbase/.hbase-snapshot/snapshot_src_table
- #子目次下有如下几个文件
- /hbase/.hbase-snapshot/snapshot_src_table/.snapshotinfo
- /hbase/.hbase-snapshot/snapshot_src_table/data.manifest
B.数据迁徙: 在上面建设好快照后,行使ExportSnapshot呼吁举办数据迁徙,ExportSnapshot也是HDFS层的操纵,本质照旧操作MR举办迁徙,这个进程首要涉及IO操纵并耗损收集带宽,在迁徙时要指定下map数和带宽,否则轻易造成机房其余营业题目,假如是单独的MR集群,可以在MR集群上行使如下呼吁:
- hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot
- -snapshot snapshot_src_table
- -copy-from hdfs://src-hbase-root-dir/hbase
- -copy-to hdfs://dst-hbase-root-dir/hbase
- -mappers 20
- -bandwidth 20
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|