下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

浅谈大数据的数据灾备建设

作者:匿名     来源: 大数据点击数:531发布时间: 2022-06-29 23:28:46

标签: 大数据数据灾备

  信息系统的灾备,会按照业务恢复的要求,设置为三级:数据级、应用级和业务级。因业务级,除了需要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

  数据导入方法hbase.org.apache..hadoop.hbase.comprocessor.Import

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

  四、大数据的应用级灾备

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

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

  

图2.OLTP集群灾备

  五、后续与展望

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

  来源: 匠心独运维妙维效

    >>>>>>点击进入大数据专题

赞(8)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程