<small id='tAxh'></small> <noframes id='xr3KJ'>

  • <tfoot id='a3o4pI9ur'></tfoot>

      <legend id='GEJvQ0fDF'><style id='JYFIHdWV05'><dir id='ShM4d'><q id='AnDmbGOP'></q></dir></style></legend>
      <i id='F0wRs'><tr id='SkTf2Dc'><dt id='FmHl'><q id='QvVlRL04j'><span id='uLf6T'><b id='jn6iF'><form id='zGeqXKsO'><ins id='p2Jvgrt4'></ins><ul id='wxd4'></ul><sub id='ZQcRFP'></sub></form><legend id='lv5kgi'></legend><bdo id='D2oq0F'><pre id='G8pZ1Fxm0J'><center id='2nZ9r'></center></pre></bdo></b><th id='c9LsV5wgiK'></th></span></q></dt></tr></i><div id='5CmryM'><tfoot id='45CE2RQu'></tfoot><dl id='PmOXZ3y48'><fieldset id='ZUygC'></fieldset></dl></div>

          <bdo id='tdpAvnKkJ'></bdo><ul id='VSB3hG'></ul>

          1. <li id='NrYSuhgBOj'></li>
            登陆

            HBase实践 | HBase TB级数据规划不停机搬迁最佳实践

            admin 2020-02-14 282人围观 ,发现0个评论

            布景

            有关HBase集群如何做不断服的数据搬迁一向都是云HBase被问的比较多的一个问题,现在有许多开源的东西或许HBase自身集成的计划在功用、稳定性、运用体会上都不是很好,因而阿里云供给了BDS搬迁服务,能够协助云上客户完结TB级数据规划不断机搬迁

            支撑场景

            • HBase大版别晋级, 1.x晋级2.x
            • 集群装备晋级,8核16G晋级为16核32G
            • 集群网络环境改变,经典网络搬迁到VPC
            • 异地跨机房搬迁
            • HBase事务拆分

            计划介绍

            开源计划

            HBase不断机搬迁首要包含三个部分:表结构的搬迁、实时数据同步、前史全量数据搬迁。

            • 表结构搬迁

            关于表结构搬迁来说,开源的DataX仍是HBase自身都不供给表结构搬迁的功用,只能进行手动建表,手动建表会存在几个问题:

            1. 假如源集群表数据较多,客户手动建表比较费事
            2. 手动建表或许忽略表分区,导致方针表分区很不合理,搬迁完之后影响恳求RT
            • 实时数据同步

            关于实时数据同步来说,有两种现有的计划:客户端运用双写、HBase Replication

            1. 客户端运用HBase实践 | HBase TB级数据规划不停机搬迁最佳实践双写需求事务方对客户端代码进行改造,而且双写会扩大毛刺,只需有一个集群呈现问题就会影响事务写入,关于实时要求性比较强的事务是不能承受的
            2. HBase Replication 关于大集群或许写入压力比较大的集群来说,存在如下几个问题:
            3. 同步的逻辑集成在RegionServer傍边,RegionServer读写和同步会彼此影响
            4. 不同的RegionServer同步的压力或许是不同的,不抗热门
            5. 假如遇到同步积压,往往RegionServer的负载现已很高不太简单经过调整线程来处理,只能等低峰期渐渐消化或许增加RegionServer节点
            • 全量数据搬迁

            关于全量数据搬迁来说,能够运用DataX、HBase CopyTable、HBase创立和导出快照

            1. DataX走的API层面的搬迁,关于源集群大表的全表Scan和方针表很多的Put都会对集群事务发生影响,增加事务的读写毛刺,其他API层面的搬迁比文件层的复制会多占用50%以上的流量
            2. HBase创立和导出快照,快照的创立和导出都是在源集群上完结,会影响源集群稳定性,创立快照会暂用源集群的存储资源,对一张大表创立完快照,然后进行major compaction或许会导致HDFS容量水位敏捷上涨,或许会写满HDFS

            阿里云的计划

            为了处理了开源计划存在的缺乏,支撑TB、PB等级的数据搬迁,咱们阿里内部自研了一套搬迁同步服务BDS,来满意阿里云上不同客户的需求。

            关于HBase集群彼此搬迁,BDS支撑表结构搬迁、全量数据搬迁以及增量数据同步

            • 表结构搬迁
            • 主动创立方针表并确保分区共同,避免搬迁后表单分区数据量过大,影响方针表读写RT
            • 以表等级为粒度,支撑批量提交
            • 全量数据搬迁
            • 走文件层的数据文件复制比一般API层的数据搬迁一般能节约50%以上的流量
            • 主动处HBase实践 | HBase TB级数据规划不停机搬迁最佳实践理Region Split、HFile Compaction
            • 单节点搬迁速度可到达100MB/s,节点数支撑水平扩展,能够满意支撑TB、PB等级的数据搬迁
            • 搬迁速度能够动态装备
            • 增量数据同步
            • 异步解析源集群HDFS上的WALs并在方针集群进行回放,增量同步不会和源集群HBase进行交互
            • 有完善的过错重试机制,实时监控使命速度和进展,支撑使命失利报警
            • 同步吞吐动态可配

            稳定性确保

            BDS稳定性

            1. BDS选用的是分布式的架构,master经过zk监听worker节点是否存活,假如节点宕机会对使命进行重分配,完善的failover机制
            2. 完善的监控系统、报警机制,监控表搬迁的进展,搬迁了多大的数据量,搬迁的速率,实时同步的推迟等信息,关于需求人为介入的反常进行报警
            3. BDS支撑使命断点续传

            源HBase实践 | HBase TB级数据规划不停机搬迁最佳实践集群事务稳定性

            1. 关于实时的数据同步,开源的计划走的是HBase Replication,同步逻辑集成在RegionServer中,RegionServer自身的读写和数据同步彼此影响。BDS和HBase集群解耦,独立布置,避免对HBase集群CPU、内存等机器资源的占用
            2. 全量数据搬迁、实时数据同步只拜访源集群的HDFS,全程不会和HBase做交互,尽量避免对源集群事务发生的影响
            3. 能够动态调整全量数据搬迁和实时数据同步的搬迁速率

            搬迁过程

            下图为集群搬迁的根本过程

            • 购买及环境预备
            • 购买BDS搬迁服务
            • 不同网络环境需求打通BDS到各个集群的网络
            • 提交搬迁使命
            • 登陆BDS操作页面
            • 录入源集群和方针集群的信息
            • 敞开增量同步通道,同步源集群实时写入数据到方针集群
            • 提交前史数据搬迁使命,搬迁前史存量数据文件
            • 验证
            • 事务验证
            • 事务切换

            事例

            搬迁规划

            网路环境:相同VPC

            集群版别:自建HBase1.x搬迁到云HBase1.x

            集群规划:集群20台RegionServer

            数据规划:数据总量30+T,搬迁20+表,日增几百G

            要求:不断服搬迁,尽或许避免读在线事务的影响

            环境预备

            过程1:核算BDS服务的规划

            BDS单节点(4cores 8G)的搬迁最大速度 50MB/s ~ 100MB/s,增量同步使命单机能最多处理5台RS的日志, 单节点日志搬迁速度最大50 ~ 60MB/s。

            源集群有20台节点, 日增数据几百G,写入量也不是很大,BDS每个节点一起能够处理5个RS的日志,因而,BDS至少需求4个Worker节点。

            过程2:购买BDS集群

            详见《BDS服务注册》,注册了BDS之后,需求装备BDS拜访的白名单,然后装备页面登陆的账户暗码,进行BDS操作页面的登陆。

            过程3:相关HBase集群

            购买BDS集群之后,需求相关源集群和方针集群。

            关于方针云HBase集群来说,BDS控制台供给了主动相关集群的功用,不需求手动的录入集群的信息。

            控制台点击相关集HBase实践 | HBase TB级数据规划不停机搬迁最佳实践群会罗列出一切BDS所绑定的VPC下的云HBase集群,挑选对应的方针集群进行绑定,绑定完结之后,能够在BDS HBase数据源页面看到绑定的集群信息。

            关于自建HBase,需求绑定ip和hostname的映射联系并手动录入集群信息。自建HBase集群机器运用的主机名或许是BDS不识其他,因而在录入自建HBase集群信息之前,需求装备集群主机名和ip的映射联系到BDS。检查自建集群的/etc/hosts,将/etc/hosts信息copy到装备项中,在BDS上录入集群ip和hostname的映射联系。

            回到HBase数据源页面,增加数据源。

            录入自建集群的HDFS地址、HBase的版别、HBase根目录、HBase衔接信息,点击增加会对网络连通性、HBase版别进行校验,源集群和方针集群都验证经过之后,就能够装备搬迁使命。

            装备搬迁使命

            当上面的一切前置条件都装备完结后,就能够开端搬迁使刀锋命装备。下面详细介绍下详细的搬迁过程。

            过程1:创立实时数据同步通道

            首要登陆BDS界面,点击使命办理挑选HBase实时数据同步,挑选创立HBase同步通道,进入通道创立的页面。

            挑选源集群和方针集群,按照表为粒度批量提交要搬迁的表,创立同步通道。BDS在提交同步通道的时分主动检测方针表是否存在,不过不存在创立方针表,确保原表和方针表完全共同。这儿引荐运用BDS主动建表确保方针集群和源集群的分区共同。同步通道创立完结之后,咱们检查同步通道HBase实践 | HBase TB级数据规划不停机搬迁最佳实践的进展。

            总结一项能够检查整个通道的总推迟,BDS处理的最大最小耗时,读写总流量和速率

            表信息概况能够检查表put、delete操作总次数,表开端同步的时刻点和最近更新的时刻点。

            日志信息概况首要罗列了各个日志同步的进展,点位和速率。

            过程2:提交前史使命搬迁

            增量数据同步通道完结之后,接下来提交全量数据搬迁使命,在使命办理里边咱们挑选HBase前史数据批量搬迁,进入前史数据办理页面,点击创立使命,进HBase实践 | HBase TB级数据规划不停机搬迁最佳实践入全量数据创立页面,挑选对应的源集群和方针集群,输入需求搬迁的表,点击创立。

            全量数据搬迁使命提交后,BDS会去验证方针表是否存在,不存在就主动创立方针表,使命开端之后咱们能够检查各个表搬迁的进展和速率。

            过程3:事务验证

            当全量数据搬迁完结,实时同步的推迟在事务可控规模之内(比方源集群和方针集群同步推迟1秒以内),事务能够进行数据的抽样校验,以及开端部分事务灰度。

            过程4:事务切流

            验证经过之后,找个事务低峰期进行事务切流,切流过程中或许遇到问题,回切流量到源集群,为了避免流量切回源集群呈现源集群少数据状况,需求事务在切流之前敞开方针集群到源集群的实时同步通道,将切流后的实时写入数据同步回源集群。

            过程5:开释BDS资源

            事务稳定在新集群上运行了一段时刻之后,没有发现问题,便能够中止BDS实时同步的通道,开释掉BDS资源。

            欢迎点赞+保藏+转发朋友圈本质三连

            文章不错?点个【在看】吧!

            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP