小米科技:何亮亮HBase服务化实践
Posted 小象
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小米科技:何亮亮HBase服务化实践相关的知识,希望对你有一定的参考价值。
小象科技原创作品,欢迎大家疯狂转发;
机构、自媒体平台转载务必至后台留言,申请版权。
何亮亮
小 米 科 技
「HBase服务化实践」
何亮亮是09年毕业于中国科学院,2013加入小米基础架构组,先后负责小米结构化存储服务设计与开发,Hadoop和HBase开发与维护等工作。
各位朋友大家好,我来自小米云平台存储组,我们组主要负责小米公共存储服务的开发与支持,小米是HBase的一个重度用户,我今天主要分享一下我们在使用HBase过程中遇到的一些问题,以及我们的一些实战经验。这也是今天的主要内容,因为时间关系我可能会加快速度,如果有什么问题我们可以线下交流。
首先我们回顾一下HBase的架构,HBase是基于谷歌的Bigtable论文,它主要是由HMaster和Regionserver这两个组件组成。它底层的数据存储在HDFS上边,Zookeeper负责各个组建之间的协调工作。
接下来讲一下HBase在小米的应用现状,HBase在小米主要是用在OLTP的场合,以及相关的一些离线分析,典型的应用包括小米云服务,包括大家常用的通话记录、短信、云相册等。这些服务的结构化数据存储在HBase上面。第二个应用就是小米消息推送服务,主要面向移动应用开发者。其他还有多看阅读以及小米各种设备的数据。
这是现在的一个应用规模,我们现在大概有10多个在线集群5个离线集群还有若干个测试集群,分布在5个数据中心,目前有几百台机器,典型的数据结点是12*2T配制,目前服务了公司内外的数十个业务,最大集群QPS大概在的百万级别。
这是我们一个典型的部署情况,在线集群主要服务线上业务,然后它的数据通过日志的方式,同步到离线集群和冷备集群,其中离线集群是用来做一些离线的分析。冷被集群主要考虑到数据安全,所以我们做了一个数据的备份。考虑到存储成本我们是采用了HDFS RAID,这样可以大大减少存储上面的成本,目前RAID的配制是6+3。同时我们增加了细粒度的同步设置支持,这样可以支持表级别和CF级别同步设置,这样只需要同步必要的一些数据,节省空间和带宽成本。
这是我们一个典型的部署,除了Zookeeper、HBase、HDFS这三个必备的模块之外,我们还在HBase原生接口基础上,开发了结构化存储库libsds,以及结构化存储服务。除此之外,我们还开发的自己的部署运营系统Minos,接下来我会分别介绍一下这三方面的工作。
前面百度马老师也吐槽了Hadoop,Hadoop的默认部署是非常难用的,不太适合大规模的生产环境。我们就开发了我们自己的Hadoop集群管理系统,可以实现Hadoop系列软件的部署与管理。Minos内建监控的支持,对于HBase我们增加了一些表级别的监控数据的聚合。这是Minos的一个整体架构,主要包含了四个组件,包管理服务,统计监控服务、结点上面的Agent负责进程的生命周期管理,配制管理等,以及运维工具,目前这个项目已经开源,如果大家有兴趣,可以在Github上面下载试用。
这是我们的一个上线的流程,我们发布新版本的时候,大概经过单元测试、压力测试和Staging集群的测试。除了3个测试之外,我们还有Longhaul测试和Failover测试,这样可以帮助我们尽快发现问题。
除此以外我们还做了一些其他的辅助工作,包括HBase的Nameservice支持,Snapshot管理,HBase错误日志统计分析,Kerberos帐号管理等工具。
这是我们遇到一些典型故障,首先最常见的是坏盘,这是个问题是在HDFS层面解决。
第二个问题是相对影响比较大的,就是慢盘的问题,我们在HDFS层面开发了一个叫Hedged Read的特性,就是在第一次读取超时的时候,同时向第二个Datanode发请求,从而降低整个请求的延时。
第三个就是用JVM问题,HBase、HDFS这些都是里Java实现的,所以说GC问题是难以避免的,我们主要是做两方面个工作,一个是调节JVM参数,另外一个就是我们在采用单机多实例的部署方式,这样就是减少JVM堆的大小,这样可以缓解GC的影响。
第四个问题是程序Bug,在我们使用的过程中,也遇到过一些包括(Zookeeper、HBase、HDFS)的Bug,这个是比较难避免的。所以我们做了两方面工作,一个是可用性监控,另外一个就是刚才提到的错误日志的统计分析,这样我们可以尽早的发现一些异常的情况,然后去排查。最后一类问题节是网络故障,网络故障发生的比较少,但是影响比较严重,会导致集群整体宕机,需要重视。
……
还有很多,我们在开发工具方面所做的一些工作。由于微信展示有限,进入阅读原文看看吧!
▼▼▼
▼▼
▼
点击【阅读原文】查看完整内容
点击【阅读原文】参与在线问答
点击【阅读原文】和大神在线交流
以上是关于小米科技:何亮亮HBase服务化实践的主要内容,如果未能解决你的问题,请参考以下文章