如何在CDH中使用HBase快照

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.文档编写目的


前面Fayson讲过HDFS的快照,参考如何在CDH集群使用HDFS快照,那么HBase的快照呢?HBase快照功能丰富,有很多特征,并且创建时不需要关闭集群。快照可以在几秒内完成,对整个集群没有任何性能影响,另外快照只占用很小的空间。本篇文章主要讲述如何使用Cloudera Manager管理HBase的快照。

  • 内容概述

1.快照的创建及恢复

2.快照验证

3.总结

  • 测试环境

1.CM和CDH版本为5.13.0

2.操作系统:CentOS6.5

3.采用root用户操作

2.HBase表快照创建及恢复


1.登录Cloudera Manager

2.进入HBase服务

3.点击“表浏览器”

4.查看表内容

hbase(main):003:0> scan 'picHbase'
ROW                        COLUMN+CELL                                              
 002                       column=picinfo:content, timestamp=1509211357826, value=test                 
1 row(s) in 0.1330 seconds

hbase(main):004:0>

5.选择表picHbase创建快照

创建成功

picHbase表的快照列表

6.删除picHbase表数据

hbase(main):004:0> disable 'picHbase'
0 row(s) in 2.4920 seconds

hbase(main):005:0> drop 'picHbase'
0 row(s) in 1.2770 seconds

hbase(main):006:0> list
TABLE                                                                                                  
0 row(s) in 0.0100 seconds

=> []
hbase(main):007:0> 

7.通过Cloudera Manager浏览picHbase表,表被标识为已删除

8.通过picHbase-snapshot1快照恢复picHbase表

通过快照表恢复成功

9.查看picHbase表数据

hbase(main):009:0> scan 'picHbase'
ROW                        COLUMN+CELL                                                                 
 002                       column=picinfo:content, timestamp=1509211357826, value=test                 
1 row(s) in 0.0320 seconds

hbase(main):010:0> 

与备份前表数据一致。

10.向表中插入新的数据

hbase(main):009:0> scan 'picHbase'
ROW                        COLUMN+CELL                                                                 
 002                       column=picinfo:content, timestamp=1509211357826, value=test                 
1 row(s) in 0.0320 seconds

hbase(main):010:0> put 'picHbase','001','picinfo:content','test'
0 row(s) in 0.0900 seconds

hbase(main):011:0> scan 'picHbase'
ROW                        COLUMN+CELL                                                                 
 001                       column=picinfo:content, timestamp=1509265724160, value=test                 
 002                       column=picinfo:content, timestamp=1509211357826, value=test                 
2 row(s) in 0.0360 seconds

hbase(main):012:0> 

11.再次创建picHbase-snapshot2快照

12.使用picHbase-snapshot2快照还原数据

13.查看表数据,与第二次快照时数据一致

hbase(main):046:0* scan 'picHbase'
ROW                        COLUMN+CELL                                                                 
 001                       column=picinfo:content, timestamp=1509269150723, value=test                 
 002                       column=picinfo:content, timestamp=1509269443034, value=test                 
2 row(s) in 0.2290 seconds

hbase(main):047:0> 

3.HBase表增量快照验证


本章节操作主要对HBase表整理快照验证,验证是否支持增量快照。

1.删除表及所有快照信息,新建picHbase表

hbase(main):051:0* disable 'picHbase'
0 row(s) in 2.2830 seconds
hbase(main):052:0> drop 'picHbase'
0 row(s) in 1.2490 seconds
hbase(main):053:0> list
TABLE                                                                                                  
0 row(s) in 0.0080 seconds
=> []
hbase(main):054:0> create 'picHbase', {NAME => 'picinfo'}
0 row(s) in 1.2360 seconds
=> Hbase::Table - picHbase
hbase(main):055:0> list
TABLE                                                                                                  
picHbase                                                                                               
1 row(s) in 0.0110 seconds
=> ["picHbase"]
hbase(main):056:0> 

2.向表中插入一条数据,并创建picHbase-snapshot1快照

hbase(main):059:0* put 'picHbase','001','picinfo:content','test'
0 row(s) in 0.0240 seconds

hbase(main):060:0> scan 'picHbase'
ROW                        COLUMN+CELL                                                                 
 001                       column=picinfo:content, timestamp=1509270945505, value=test                 
1 row(s) in 0.0130 seconds

hbase(main):061:0> 

创建快照

使用ExportSnapshot命令导出该快照到HDFS

[root@ip-172-31-6-148 ~]# hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot picHbase-snapshot1 -copy-to hdfs://ip-172-31-6-148.fayson.com:8020/hbase_bak1 

HDFS导出的快照目录

3.向picHbase表中插入数据并创建picHbase-snpashot2快照

hbase(main):063:0* put 'picHbase','002','picinfo:content','test'
hbase(main):064:0> scan 'picHbase'
ROW                        COLUMN+CELL                                                                 
 001                       column=picinfo:content, timestamp=1509270945505, value=test                 
 002                       column=picinfo:content, timestamp=1509271243302, value=test                 
hbase(main):065:0> 

创建picHbase-snapshot2快照

导出该快照到HDFS目录

[root@ip-172-31-6-148 ~]# hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot picHbase-snapshot2 -copy-to hdfs://ip-172-31-6-148.fayson.com:8020/hbase_bak2 

HDFS导出目录

4.再次向表中插入一条数据并创建picHbase-snapshot3快照

hbase(main):068:0* put 'picHbase','003','picinfo:content','test'
hbase(main):069:0> scan 'picHbase'
ROW                        COLUMN+CELL                                                                 
 001                       column=picinfo:content, timestamp=1509270945505, value=test                 
 002                       column=picinfo:content, timestamp=1509271243302, value=test                 
 003                       column=picinfo:content, timestamp=1509271557759, value=test                 
hbase(main):070:0> 

创建picHbase-snapshot3快照

导出picHbase-snapshot3快照到HDFS目录

[root@ip-172-31-6-148 ~]# hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot picHbase-snapshot3 -copy-to hdfs://ip-172-31-6-148.fayson.com:8020/hbase_bak3 

HDFS导出目录

5.对比三次快照导出的目录大小

[root@ip-172-31-6-148 ~]# sudo -u hdfs hadoop fs -du -h / 
1.4 K    4.3 K   /hbase_bak1
2.5 K    7.5 K   /hbase_bak2
3.6 K    10.7 K  /hbase_bak3 
[root@ip-172-31-6-148 ~]# 

4.总结


  • HBase表快照时瞬时的,几乎对整个机器没有任何性能影响
  • HBase快照是一系列的元数据信息集合,可以通过快照将表恢复到生成快照时的状态
  • 快照不是表的复制,而是记录元数据(表信息和域)和数据(HFiles,内存存储,WALs)一系列操作的集合,在生成快照操作中没有任何执行复制数据的动作
  • ExportSnapshot工具可以将快照导出至其它集群,导出工具不会影响RegionServer服务器的负载,只是工作在HDFS层面。
  • HBase快照是某一时刻表的完整快照,目前不支持增量快照,增量可以使用HBase自带的import/export来实现,关于如何自定义exportsnapshot这个类实现基于快照的增量备份和恢复,Fayson会在接下来的文章里进行说明。

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2017-10-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

CDSW1.3的新功能

前两天Fayson介绍过《CDH5.14和CM5.14的新功能》,与CDH5.14同时发布的还有CDSW1.3,以下我们具体看看CDSW1.3的新功能。

44360
来自专栏Hadoop实操

如何将Kerberos环境下CDH集群JAVA升级至JDK8

大家都知道在安装CDH时默认安装的JDK版本为jdk1.7.0_67,部分企业开发环境为JDK8版本,这个时候可能会出现在本地开发的应用在集群中无法正常运行。前...

53550
来自专栏Hadoop实操

使用Hive SQL插入动态分区的Parquet表OOM异常分析

当运行“INSERT ... SELECT”语句向Parquet或者ORC格式的表中插入数据时,如果启用了动态分区,你可能会碰到以下错误,而导致作业无法正常执行...

2K80
来自专栏Hadoop实操

如何使用StreamSets实现MySQL中变化数据实时写入Kudu

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproje...

1.8K110
来自专栏Hadoop实操

如何给Kerberos环境下的CDH集群添加Gateway节点

Gateway节点又称为客户端节点,通常用作访问Hadoop集群的接口机。它主要会部署一些客户端的配置,脚本命令,比如HDFS的core-site.xml,hd...

46940
来自专栏大数据-Hadoop、Spark

Spark源码编译

前置条件: CentOS6.7 JDK1.7+ Maven 3.3.9 Spark2.1.0 1.到spark官网上下载spark2.1.0的源码 ? spar...

39670
来自专栏Hadoop实操

如何在CDH集群外配置Kerberos环境的Gateway节点

48240
来自专栏Hadoop实操

如何在Kerberos环境的CDH集群外跨OS版本中在指定目录配置HDFS的Gateway节点

在前面的文章Fayson介绍了《如何在CDH集群外配置非Kerberos环境的Gateway节点》和《如何在CDH集群外配置Kerberos环境的Gateway...

22020
来自专栏Hadoop实操

如何在CDH集群中安装Hive2.3.3

63730
来自专栏Hadoop实操

如何在CDH集群外配置Kerberos环境的Spark2和Kafka客户端环境

28230

扫码关注云+社区

领取腾讯云代金券