2013年11月22-23日,作为国内唯一专注于hadoop技术与应用分享的大规模行业盛会,2013 Hadoop中国技术峰会(China Hadoop Summit 2013)于北京福朋喜来登集团酒店隆重举行。来自国内外各行业领域的近千名CIO、CTO、架构师、IT经理、咨询顾问、工程师、Hadoop技术爱好者,以及从事Hadoop研究与推广的IT厂商和技术专家将共襄盛举。
在SQL&NoSQL专场,来自小米的资深工程师刘绍辉做了《从关系型Mysql到Nosql HBase的迁移实践》演讲。详细介绍了HBase,以及HBase在小米的使用,小米开发的重要特性和未来的开发计划。
首先,刘绍辉在介绍HBase,他谈到,小米从去年开始调研测试,目前已经十几个业务接入到了HBase上,包括米聊消息的全存储、MiCloud上短信通话记录的同步、小米Push服务、以及一些离线的数据分析业务。
刘绍辉谈到,典型的HBase集群包含了3到5个控制节点,5到n个的数据节点。控制节点和数据节点的主要区别在磁盘上,控制节点对磁盘的容量要求并不是很高,主要是要求磁盘要稳定。
▲典型的HBase集群
刘绍辉继续介绍到,整个系统的自动化部署是小米自己开发的minos工具,直接在命令行操作,可以很简单的创建集群、修改配置文件、升级集群、删除集群等功能。同时,minos也集成了一个监控的功能。目前,这款工具已经在github上开源,小米内部使用的版本和开源版本基本上是一致的(https://github.com/xiaomi/Minos)。
介绍到最佳实践,刘绍辉说,“我们在原生的HBase Client基础上封装了一层小米的HBase Client。这主要是实现了四件事,一是保证线程的安全,二是在HBase Client中可以自动添加性能指标,三是跨表、跨集群操作对用户来说是一致的,四是可以做到动态的更新客户端配置。”
对于一些数据比较重要的业务,我们使用了双主复制,并实现了主备集群的自动切换。当我们确认需要切换集群的时候只要简单的修改一个配置,新的读写请求就会被切换到备集群上。
▲最佳实践
另外,在其他方面也有了一些优化,如平滑升级,使用基于move region脚本减少不可用时间;Full GC,每天低峰期触发Full GC;Compaction,提升写的性能;四是Shortcircuit Read;安全,Kerberos认证。
在最后谈到未来的开发计划,刘绍辉介绍到,我们希望能做到同步复制,跨行跨表的原子性,全局二级索引,以及做一些Compaction优化, Failover相关的优化,多租户共享集群与共有云,HMaster重构。在与社区共同发展方面,刘绍辉继续谈到,我们也会参与HBase修改反馈回社区,以及会紧跟社区最新进展,积极参与社区方案设计和讨论。