社区编辑申请
注册/登录
浅谈大数据的数据灾备建设
大数据
信息系统的灾备,会按照业务恢复的要求,设置为三级:数据级、应用级和业务级。因业务级,除了需要IT系统的灾备建设,还需要其他非IT资源的配合,所以不在本文讨论范围内。

​一、引言

大数据时代,数据呈爆炸趋势增长,很多企业都从大数据中获得了利益,推动各自的业务上升了一个台阶。通过大数据技术的完善尤其是大数据和云容器技术相结合,各个企业已经把自己的重要业务迁移到了大数据平台。与此同时企业对数据可靠性和业务连续性保证的诉求也与日俱增,大数据灾备刻不容缓。

信息系统的灾备,会按照业务恢复的要求,设置为三级:数据级、应用级和业务级。因业务级,除了需要IT系统的灾备建设,还需要其他非IT资源的配合,所以不在本文讨论范围内。

二、基础概念

在讨论信息系统灾备之前,需要明确两个概念:RTO和RPO

RTO:(RecoveryTime Object)是指灾难发生后,从IT系统宕机导致业务停顿之刻开始,到IT系统恢复至可以支持各部门运作,业务恢复运营之时,此两点之间的时间段称为RTO。

RPO:(RecoveryPoint Objective,复原点目标)是指数据中心能容忍的最大数据丢失量,是指当业务恢复后,恢复得来的数据和灾难发生前数据的差异,也就是能够容忍的数据丢失量。

三、大数据的数据级灾备

大数据底层数据存储使用HDFS实现。对HDFS的备份,其目的在于当集群A上的数据出现问题,可以使用集群B上的数据进行恢复。

HDFS在两个集群间使用distcp命令实现数据复制。因distcp命令最终产生的是MR任务,所以可以实现数据的并发拷贝。HDFS中的数据的存放,是以目录的方式进行存放。使用distcp时,需要指定源端集群的目录和目标端集群目录。

  • hadoop distcp 
  • hdfs://cluster1/user/app1 
  • hdfs://cluster2/user

如果有多个目标集群,可以在目录中指定更多的目标集群。在使用distcp命令,也可以增加一些参数,比如使用overwrite覆盖已有的备份,或者使用update参数备份修改过的文件。

使用distcp的好处在于备份过程简单。并且可以根据自身的需要,对整体集群或对指定的目标进行备份。由于distcp能够灵活使用,所以非常方便配合各种业务操作。当每日完成数据加工操作后,可以在批量作业中调用disctcp将重要数据备份到异地机房进行保存。

使用此种方法,需要建立目标集群,同时对网络带宽有一定需求,所以此种灾备系统的成本较高。如果需要降低成本同时对备份和恢复的效率要求不高,也可以将HDFS中的数据导出为文本,使用磁带库的方式进行备份。

大数据平台中不仅需要对HDFS的数据进行备份,HBase数据库的灾备也尤为重要。HBase在大数据体系中,不仅承载OLAP的业务,同时也具备OLTP业务承载能力。

在OLTP业务场景下,通常对RTO要求较高。可以考虑使用HBase数据库提供的Replication(复制)技术。HBase当前有3种Replication方式:

  • 异步Replication
  • 串行Replication
  • 同步Replication

使用哪一种复制方式,需要根据对RTO和RPO的要求进行确定。不同种类的复制方式,对于前端业务在数据库中的操作效率,会有不同的感受。

HBase数据库的备份原理,是对HLog进行读取并发给Slave端中进行应用,从而实现数据同步。每个Master节点中的RegionServer都有HLog,开启HBase的复制方式,在RegionServer上会开启一个单独的线程读取HLog,同时发送给Slave端。并通过Zookeeper记录已经发送的HLog的偏移量。在3种复制方式中,异步的复制方式对源端的HBase影响最小。

图片

图1.HBase Replication原理

HBase的Replication是一种较为高级的灾备方法。除了使用Replication也可以使用CopyTable、Export/Impor方式进行HBase数据库的数据灾备。

CopyTable是一种逻辑的数据备份技术,其原理是对表的scan操作,对RegionServer会产生较大的压力,对于OLTP的业务会有写入操作的影响。但由于CopyTable的原理是使用HBase的API对表进行scan操作,从而可以让用户自定义对表中数据抽取,同时目标表的位置可以是本集群或远端集群。

  • hbase.org.apache.hadoophbase.mapreduce.CopyTable
  • --peer.adr=BkCluster:2181:/hbase 
  • --new.name=BkTable AppTable如果需要备份到本地集群,去掉peer.adr参数。

HBase的逻辑备份,还可以使用export/import方式。export\import方式不同于CopyTable方法的是,将备份的数据以sequence的格式,将数据保存到HDFS中。此方法相比于CopyTable在备份和恢复效率方面有所下降,但备份的数据可以离线进行长期保留。

  • 数据导出方法
  • hbase.org.apache.hadoop.hbase.coprocessor.Export<tablename><outputdir>
  • 数据导入方法hbase.org.apache..hadoop.hbase.comprocessor.Import<tablename><inputdir>

CopyTable和export/import两种方法,都可以灵活的生成备份数据,配合数据加工操作,完成重要数据进行备份。但需要考虑在备份过程中对HBase的性能影响。

四、大数据的应用级灾备

应用级灾备,主要对业务等级较高,对RTO和RPO要求较高的业务系统而设计的。在大数据领域内,完成应用级灾备,主要的实现方法是数据的双加载方式。所谓的双加载方式,是前端应用对部署在不同地点的集群,同时加载数据。所有集群都写入成功后,返回数据写入成功的标志。G行目前采用的是,应用级灾备和数据级灾备的混合模式。联机业务采用应用级灾备,联机业务数据使用异步批量提交的方法,将数据提交给主数据集群。主机群通过定时批量的方法,将数据分别同步给两个数据查询集群,前端连接其中一个集群对外提供查询服务,并在一个查询集群出现问题时,通过应用程序的手动切换完成数据源的隔离,实现数据读操作的切换。此种方式,将读和写的操作进行了分离,在写入操作出现问题时,读操作任然可用。批量作业业务,采用数据级容灾,对重要数据进行数据克隆或导出进行保存。

应用级灾备是一个系统工程,基础数据层形成了多点保护,相关的应用系统和存储系统也会改造为多活架构。G行考虑到今后基于大数据平台的联机业务的发展,将平台进行了纵向切分,对联机业务单独建立集群,分离出OLTP业务,并形成同城两中心的多活架构。

图片

图2.OLTP集群灾备

五、后续与展望

各行各业基于大数据技术在快速发展自己的业务,将随着业务的变化对大数据的灾备会提出更多的要求。G行也在根据自己的业务,完善大数据系统的灾备建设,尤其是基于大数据的实时业务的灾备建设。我们会将最新的大数据灾备建设方法,写在此公众号上。请关注我们的更新。

责任编辑:武晓燕 来源: 匠心独运维妙维效
相关推荐

2018-11-19 09:59:36

容灾异地容灾同城容灾

2017-07-03 13:53:17

大数据大数据平台数据治理

2019-10-08 18:05:29

浪潮商用机器

2022-07-20 15:07:55

数据中心储能系统能源

2013-08-12 11:37:30

数据中心大数据

2015-11-18 17:00:15

医疗大数据医疗信息化

2019-10-23 17:07:05

存储

2016-08-29 23:00:29

2010-03-15 11:47:11

网络安全

2014-04-02 11:32:00

2012-08-09 11:10:05

大数据数据中心

2016-09-13 09:10:35

大数据

2020-09-21 09:34:20

大数据

2015-04-15 09:26:34

大数据平台用友

2020-01-06 08:00:49

大数据分析数据技术

2018-03-02 16:26:14

数据中心

2014-03-14 15:17:44

万国数据灾备白皮书

2015-06-04 13:31:17

大数据物联网数据中心

2019-09-30 11:22:36

浪浪潮商业机器

2020-04-03 18:43:21

大数据Hadoop数据

同话题下的热门内容

数据专家的晋级之路:大数据中的四大挑战!数据挖掘和数据仓库之间的区别技术管理如何应对混合工作模式转变Arctic开源!网易数帆X华泰证券,推动湖仓一体落地数据开发流程规范及数据监控2023年及以后工作的十大数据科学独角兽公司终于有人把知识图谱讲明白了

编辑推荐

使用Pandas&NumPy进行数据清洗的6大常用方法2018年7款最佳免费数据分析工具pyspark访问hive数据实战【漫谈数据仓库】 如何优雅地设计数据分层人工智能、大数据与深度学习之间的关系和差异
我收藏的内容
点赞
收藏

51CTO技术栈公众号