本文根据dbaplus社群第181期线上分享整理而成,文末还有好书送哦~
讲师介绍张秀云
腾讯高级DBA
网名飞鸿无痕,2007年进入职场后一路升级打怪,从网络管理员、Linux运维,到小公司DBA,再到腾讯金融DBA。
目前在腾讯负责金融DB和分布式HBase数据中心的运维和规划工作。对数据库运维和分布式存储有丰富实战经验。个人简书:www.jianshu.com/u/9346dc2e9d3e
本次分享会给大家系统地介绍10P+金融数据迁移的整个过程。下面是对这次线上分享的文字总结,希望对想了解HBase跨机房迁移技术的网友有帮助。
一、HBase知识介绍
考虑到来听分享的大部分都是MySQL DBA,因此这里做了个简单的HBase相关介绍,主要介绍了如下三个方面的内容:
1、HBase简介HBase是基于google bigtable的开源实现,又称为hadoop database,具有高性能、高可用、易伸缩等特点,是一个面向列的分布式存储系统,可以在廉价PC Server的机器上搭建海量存储服务。
随着数据量的不断增大,查询和写入的性能并不会出现明显的下降,可以说是目前各大企业构建数据中心很好的选择。
2、HBase的优缺点HBase的优点
总结了HBase的几个优点如下:
列可以动态增加
其实更准确的说,HBase是面向列族的数据库,一个表可以有多个列族,而每个列族下面可以有非常多的列,也就是说列族下面的列可以动态增加或者减少。
卓越的写入性能
HBase采用的是LSM类型系统结构,写入都是先写内存,后面再异步批量刷新到磁盘,因此写入性能非常好。并且这种写入性能很容易通过扩容机器提升。
海量存储
HBase就是为海量存储而生的,由于其优秀的架构设计,使得数据量的不断增长,在查询时延方面并不会下降特别多。因此HBase在海量数据的场景下,优势非常明显。
极易扩展
HBase由于其架构的特性(后端采用HDFS存储,借助ZK的相关特性),HBase极易扩展,通过添加节点,来增加存储量和提升写入性能,使得HBase极具伸缩性。
HBase的缺点
总结了HBase的缺点如下:
HBase原生不支持SQL
HBase原生并不支持SQL,业务接入HBase需要通过接口做一些改造,这在一定程度上还是不太友好。虽然目前有一些组件也为HBase提供一些接口支持,比如phoenix。但是就我们的测试来看,稳定性仍然是一个很大的问题。
查询延迟比DB大
HBase比较多的应用是通过廉价的PC Sever构建海量存储服务,而目前DB的标配基本都是SSD盘,DB的延迟可以做到0.x个毫秒,而基于廉价PC Server构建的海量存储服务的延迟一般在几十毫秒到上百毫秒之间。
当然HBase也可以采用SSD盘来构建海量存储,但这种成本就比较高。目前HBase已经支持了异构存储功能,可以将热数据存储到SSD,冷数据存储到SATA,这是一个很好的方案。
RegionServer单点
运维过RegionServer的同学都可能深有体会,表的某一个region只能分配到某一台RegionSever的机器上,因此,当某一台RegionServer异常的时候,上面的Region肯定会有影响,尤其是当一个RegionServer上有超过1000个region的时候,影响可能会达到几分钟。这个单点的问题还是一个比较大的硬伤。
目前HBase2.0版本已经引入了Region Replica的支持,但是由于需要更多的资源和强读一致性的问题,业界真正在生产环境使用这个功能的非常少。比较多的是采用集群容灾方式,在业务层做切换,目前我们就是采用这种方式,以减少单个Regio