冯宏华:做分布式存储系统不是一件容易的事情

阅读数:2860 2014 年 7 月 14 日

随着业务的发展,数据存储不可避免。而建立一个稳定可用的分布式存储系统并不是一件容易的事情。在 ArchSummit 全球架构师峰会前夕,InfoQ 采访了小米软件工程师冯宏华,他同时也是 HBase committer。以下为对话全文:

InfoQ: 冯宏华你好,向 InfoQ 的读者和 ArchSummit 的听众介绍下自己吧。

冯宏华:我 1995-2002 年在清华大学计算机系读本科和硕士,毕业后先后在松下、IBM、微软、腾讯工作过,在微软 STCA 工作期间 (2007-2011) 开始从事分布式存储系统方面的工作,参加了 Kirin Store 系统 (Bing 的后台存储系统) 的开发;在腾讯 SOSO 的台风部门工作期间参与了 Xcube 系统 (类 Bigtable) 的开发和改进 ;2012 年底加入小米后,一直从事 HBase 系统的开发和改进。

InfoQ:从微软、腾讯到小米,你一直在专注分布式存储领域,6-7 年下来你最大的体会是什么?你观察到哪些趋势和变化?

冯宏华:最大的体会是做出一个稳定可用的分布式存储系统不是一件容易的事情,从架构设计到各个实现细节,有太多的因素最后决定了系统的稳定性可用性以及性能等各项指标;趋势和变化这个我只能说些自己的看法了 (不一定准确),对比几年前,开源系统尤其是 Hadoop/HBase 的成熟度有了很大的改观,已经达到较稳定和可用的程度,对大多数有大数据应用场景的公司来说,这是一个好消息,因为不再需要从无到有的开发一套自己的系统了。

InfoQ:接下来说说 HBase,首先恭喜你成为了 HBase 的 committer,说说你的贡献吧,怎么在老外主导的圈子得到认可的?

冯宏华:针对 HBase 的改进大多是建立在公司各业务部门真实的业务需求之上,他们的需求直接驱使了我们对 HBase 的改进,我们基本也都是先实现在自己的内部版本并服务在业务系统上,再找时间提交到社区去的,比如细粒度跨机房复制,反向扫描,写性能优化,指定 timestamp 批量删除等功能;说到社区认可,感觉还是比较顺其自然的,当持续提交 patch,以及过程中的讨论、交互,就慢慢积累起来了,当然 patch 的质量也会是一个因素。

InfoQ:HBaseCon2014 上好像只有你和谢良两名来自国内互联网公司的演讲人。这是你第一次去 HBaseCon 吗?说说这次大会的感受吧,有哪些值得关注的技术实现或创业公司?

冯宏华:这是小米第一次去 HBaseCon,谢良和我也都是第一次;对 HBaseCon 的感受就是面对面接触到社区的人还是和通过 jira 的 comment 交流不太一样。另外就是感觉硅谷那边对这种纯技术大会的参与比较积极,那边年纪比较大但仍然从事一线开发的“老码农”更多,感觉他们对仍然战斗在第一线没觉得有何不妥;遇到几个那种几个人组成的大数据公司,主要提供大数据业务支持、咨询等工作,比较意外。

InfoQ:说说你在 ArchSummit 上的分享吧。

冯宏华:主要集中在介绍小米大数据平台组做的三个方面:存储平台,计算平台和开放平台,我个人主要集中在存储平台,所以这块会讲的更详细些。

InfoQ:在小米,除了 MapReduce 还使用了哪些计算框架?分别用在了那些场景?

冯宏华:还用到了 Impala、Hive、Storm、Spark 这四个计算框架。

InfoQ:能否介绍一下大数据在贵公司主要是如何应用的?

冯宏华:小米的大数据平台是搭建在以 Hadoop/HBase 等一系列开源系统之上的,其主要用途分两类:大数据线上实时存取 (如 micloud/mipush/miliao 等);用户数据线下分析处理 (如电商 /SNS/ 互娱 / 多看等数据)。

InfoQ:大数据分析对于贵公司的业务产生了哪些推动作用?;

冯宏华:大数据分析主要满足了业务部门对各自数据的深度分析和挖掘的需求,而且是多维度多视角的,这样能让业务部门对他们的数据有更全面更深入的“理解”,这些“理解”又会驱使和促进他们对业务本身的改进和调整,这是一个不断反馈和迭代的过程。

InfoQ:未来在大数据的应用方面有何其他的计划?

冯宏华:可能会尝试使用其他种类的存储系统如 Cassandra 等,也会对 Hadoop/HBase 系统做一些基于业务需求的比较大的改进和扩展,数据计算方面会持续对诸如 Storm/Spark 等系统的投入,另外也在做开放平台方面的工作。

InfoQ:小米开放平台提供了类似 AWS S3 和 DynamoDB 的服务,这些服务服务于小米内部还是外部的用户?

冯宏华:目前还都是小米内部用户。

InfoQ:对于想要应用大数据的企业,您有何建议?

冯宏华:没有特殊原因的话,尽量采用已被业界同行验证和使用过的比较成熟的开源产品,避免无谓的投入大量人力和时间去重造“轮子”和走弯路,但同时也要对开源里的新技术 / 新系统保持兴趣,比如用测试集群、数据对这些新技术、新系统做一些尝试等,对它们的特性优劣以及成熟度等都有一个直观感性的认识,以决定是否以及何时对何种业务场景使用它们。

此专题详细信息,请见专题页面。关于此次ArchSummit 全球架构师峰会其他专题的详细信息,请移步至大会官网

团体购票(5 人及以上)将享有更多优惠。详请咨询 arch【at】cn.infoq.com,或直接致电 010-89880682。报名请点击报名页面

收藏

评论

微博

发表评论

注册/登录 InfoQ 发表评论