欢迎来到天天文库
浏览记录
ID:41577295
大小:145.55 KB
页数:12页
时间:2019-08-28
《网易视频云:HBase高可用原理与实践》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、网易视频云:HBase高可用原理与实践网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅、低时延、高并发的视频直播、录制、存储、转码及点播等音视频的PAAS服务,在线教育、远程医疗、娱乐秀场、在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台。现在,网易视频云的技术专家给大家分享一则技术文:HBase高可用原理与实践。前言前段时间有套线上HBase出了点小问题,导致该套HBase集群服务停止了2个小时,从而造成使用该套HBase作为数据存储的应用也岀现了服务异常。在排查问题之余,我们不禁也在思考,以后再出现类似的问题怎么办?这种问
2、题该如何避免?用惯了MySQL,于是乎想到了HBase是否跟MySQL-样,也有其高可用方案?答案当然是肯定的,几乎所有的数据库(无论是关系型还是分布式的),都采用WAL的方式来保障服务异常时候的数据恢复,HBase同样也是通过WAL来保障数据不丢失。HBase在写数据前会先写HLog,HLog中记录的是所有数据的变动,HBase的高可用也正是通过HLog来实现的。进阶HBase是一个没有单点故障的分布式系统,上层(HBase层)和底层(HDFS层)都通过一定的技术手段,保障了服务的可用性。上层HMaster—般都是高可用部署,而RegionServer如果出现宕机,region迁移的代
3、价并不大,一般都在毫秒级别完成,所以对应用造成的影响也很有限底层存储依赖于HDFS,数据本身默认也有3副本,数据存储上做到了多副本冗余,而且Hadoop2.0以后NameNode的单点故障也被消除。所以,对于这样一个本身没有单点故障,数据又有多副本冗余的系统,再进行高可用的配置是否有这个必要?会不会造成资源的极大浪费?高可用部署是否有必要,这个需要根据服务的重要性来定,这里先简单介绍下没有高可用的HBase服务会出现哪些问题:数据库管理人员失误,进行了不可逆的DDL操作不管是什么数据库,DDL操作在执行的时候都需要慎之又慎,很可能一条简单的drop操作,会导致所有数据的丢失,并且无法恢复
4、,对于HBase来说也是这样,如果管理员不小心drop7一个表,该表的数据将会被丢失。离线MR消耗过多的资源,造成线上服务受到影响HBase经过这么多年的发展,已经不再是只适合离线业务的数据存储分析平台,许多公司的线上业务也相继迁移到了HBase上,比较典型的如:facebook的Messages系统、360的搜索业务、小米米聊的历史数据等等。但不可避免在这些数据上做些统计分析类操作,大型MR跑起来,会有很大的资源消耗,可能会影响线上业务。不可预计的另外一些情况比如核心交换机故障,机房停电等等情况都会造成HBase服务中断对于上述的那些问题,可以通过配置HBase的高可用来解决:不可逆D
5、DL问题HBase的高可用不支持DDL操作,换句话说,在master上的DDL操作,不会影响到slave上的数据,所以即使在master上进行了DDL操作,slave上的数据依然没有变化。这个跟MySQL有很大不同,MySQL的DDL可以通过statement格式的Binlog进行复制。离线MR影响线上业务问题高可用的最大好处就是可以进行读写分离,离线MR可以直接跑在slave上,master继续对外提供写服务,这样也就不会影响到线上的业务,当然HBase的高可用复制是异步进行的,在slave上进行MR分析,数据可能会有稍微延迟。意外情况对于像核心交换机故障、断电等意外情况,slave跨
6、机架或者跨机房部署都能解决该种情况。基于以上原因,如果是核心服务,对于可用性要求非常高,可以搭建HBase的高可用来保障服务较高的可用性,在HBase的Master出现异常时,只需简单把流量切换到Slave上,即可完成故障转移,保证服务正常运行。原理HBase高可用保证在出现异常时,快速进行故障转移。下面让我们先来看看HBase高可用的实现,首先看下官方的一张图:HBaseReplication需要声明,HBase的replication是以ColumnFamily为单位的,每个ColumnFamily都可以设置是否进行replicationo上图中,一个Master对应了3个Slave
7、,Master±每个RegionServer都有一份HLog,在开启Replication的情况下,每个RegionServer都会开启一个线程用于读取该RegionServer上的HLog,并且发送到各个Slave,Zookeeper用于保存当前已经发送的HLog的位置。Master与Slave之间采用异步通信的方式,保障Master上的性能不会受到Slave的影响。用Zookeeper保存已经发送HLog的位置,主要考虑在Sla
此文档下载收益归作者所有