欢迎投稿

今日深度:

通过快照迁移hbase1.1.2的表数据(以clone_snapshot为例说明),

通过快照迁移hbase1.1.2的表数据(以clone_snapshot为例说明),


【为什么要用clone的方式复制出一张新表】

有时候因为客户端的不当行为导致了丢失hbase表数据,如果全表恢复(restore_snapshot)则恢复之前必须禁用(disable)该表。但是我不想禁用该表,我想要这张表继续提供服务,怎么办?那么我们就采用克隆快照的方式生成另一张表即可。

 

【snapshot功能简介】

使用hbase提供的快照(snapshot)功能,不需要停掉hbase集群,不会对Region Server产生影响。导出快照到其他集群也不会对Region Servers产生影响。快照涉及的复制和恢复不包括数据拷贝,只涉及元数据的复制。snapshot为所有HFile文件分别新建引用关系(类似指针),这些元数据就是snapshot.

操作步骤,每一步的命令都整理好,如截图——

步骤1:从源集群中查得hbase根目录

[root@master-1-001 ~]# grep -i -r -C 2 "hbase.rootdir" /usr/hdp/current/hbase-client/conf/  
/usr/hdp/current/hbase-client/conf/hbase-site.xml-    <property>
/usr/hdp/current/hbase-client/conf/hbase-site.xml:      <name>hbase.rootdir</name>
/usr/hdp/current/hbase-client/conf/hbase-site.xml-      <value>hdfs://hdfs-ha/apps/hbase/data</value>
/usr/hdp/current/hbase-client/conf/hbase-site.xml-    </property>
/usr/hdp/current/hbase-client/conf/hbase-site.xml-    

 

步骤2:准备将要导出的快照

 

步骤3: 执行作业——导出快照到目标集群的hbase根目录中, 此操作要求两集群的网络互通

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot usertb_snapshot_20180412 -copy-to hdfs://your_target_ip_address/apps/hbase/data

# hbase将会把此作业交给MapReduce框架去具体处理

 

步骤4:查看目标集群是否成功接收到快照了

 

步骤5:在目标集群的hbase shell中,直接从刚才的快照中克隆出一张新表

命令格式:clone_snapshot "snapshot_name", "table_name",

例如 clone_snapshot "usertb_snapshot_20180412", "your_namespace:uertb_from_old_cluster"

 

www.htsjk.Com true http://www.htsjk.com/hbase/33207.html NewsArticle 通过快照迁移hbase1.1.2的表数据(以clone_snapshot为例说明), 【为什么要用clone的方式复制出一张新表】 有时候因为客户端的不当行为导致了丢失hbase表数据,如果全表恢复(restore_snapshot)则...
相关文章
    暂无相关文章
评论暂时关闭