不间断营业,腾讯10P+金融数据跨机房迁徙拭魅战
CopyTable和Export方案相同,都是通过MR去scan表的方法实现,差异的是,CopyTable通过MR scan出数据后直接写入其它一个集群,实现数据的迁徙。而Export则是scan后生涯为文件,传输到其它一个集群后再做import的操纵,从而实现数据的迁徙。 这种因为必要通过RegionServer层来做数据的scan,假如表很大的话,会对线上的读写有较量大的影响。这种方案较量得当小表的迁徙。 SnapShot方案 SnapShot是通过快照来实现HBase数据同等性迁徙,这种方法在建设快照的时辰会建设文件的引用指针,在传输的时辰,通过MR直接拷贝底层HDFS文件,因此建设很是快,服从很高,而且对线上攻击很小,能很好的担保数据的同等性。 SnapShot是今朝各个commiter较量保举的迁徙数据方法,再加上这种方案和我们的集群双写方案完全兼容,因此我们最终回收了这个方案。 备注:SnapShot的方案出格必要留意的是,hbase.hstore.time.to.purge.deletes配置的时刻必然要比表整体的迁徙时刻要长(包括做快照、传输快照和导入快照总时刻),不然会导致数据冗余的题目。 3、迁徙的架构图和具体流程 迁徙的架构图 迁徙的具体流程 如上图所示,我们迁徙的具体流程如下:
4、留意事项和应对计策 举办大局限的数据迁徙,照旧有较量多的留意事项,下面是必要留意的事项和我们的应对法子: 数据同等性性题目 在迁徙中,数据同等性题目是起主要思量的题目,加上我们迁徙的是金融数据,同等性题目更是我们思量的重点。为了担保数据的同等性,我们的应对法子如下:
营业持续性题目 针对营业的持续性题目,我们是对接口做了细粒度的改革,今朝使得切换粒度支持表级此外切换。我们在切换的时辰也按照营业的重要优先级以及会见量,来做接口级此外跨机房灰度切换,确保对营业的影响最小。 流量节制题目 对付云云大局限的数据迁徙,我们较量担忧的是跨机房传输快照的时辰,把机房带宽打满,导致其他的营业受影响。因此我们的应对计策有两个:
数据量大涉及表多的题目 针对表数据量大和表多的题目,首要担忧的是迁徙的时辰会造成漏掉,可能迁徙使命失败了后漏掉了。因此这里首要是做好使命打点,我们首要做了两个工作来担保项目标盼望和使命:
5、跨机房履历总结 在做HBase跨机房迁徙的进程中,我们碰着了很是多的题目,也蕴蓄了很是多的履历,我们对付迁徙的流程、留意事项、行使到的技能、陈设等都做了总结,这里列出来利便各人进修,有乐趣的网友可以按照主题做对应的阅读:
三、HBase SnapShot深入先容 1、SanpShot道理简介 HBase的SnapShot可以领略为是原数据的指针,包括表对应的元数据和涉及到的HFile相干的信息。 之以是建设快照后,HBase能按照这些数据的指针还原出做快照时候的数据,是由于HBase数据文件一旦落盘,就不应承在原地做修改。假如要修改,则必需追加写入新的文件。 尚有一点必要留意的处所,就是HBase自己也会对HFile文件做修改,由于涉及到文件的归并。这里HBase会在HFile文件归并之前将对应的表复制到archive目次下,确保HFile文件的完备性。 2、SnapShot具体流程 因为HBase表相干的数据以region的情势漫衍在多台RegionServer上,在做快照的时辰,必需担保快照的要么都乐成,可能都失败,不能呈现部门RegionSever建设快照乐成,部门RegionServer建设快照失败的环境。 HBase回收两阶段提交的方法来建设快照,别离是prepare阶段和commit阶段,当建设快照非常的时辰,尚有个abord阶段: Step 1:客户端向master提倡表建设快照的哀求; Step 2:prepare阶段,master会在zookeeper上建设/acquired-snapshotname(简写为/acquired_sname)节点,并记录表相干的信息; Step 3:RegionServer检测到/acquired_sname节点,并按照上面表的信息确认该RegionServer是否含有谁人表的Region,假若有则参加到快照的建设中来,假如没有则忽略; (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |