首页 > 大数据 > > 1. 从 MySql 到 Hbase (集群化方案)
Mysql 与 Hbase 说到最核心的点,是一种数据存储方案。方案本身没有对错、没有好坏,只有合适与否。 相信所有的公司都与 MySql 有着不解之缘,部分学校的课程甚至直接以 sql 语言作为数据库讲解。
笔者呆的上家公司是一个 O2O 创业公司,所有的数据都存储在同一个 MySql 里,而且没有任何主备方案。相信这是一个很多初创公司典型的解决办法。当时,这台 Mysql 为用户、订单、物流服务,同时也为线下分析服务

单实例的问题:
随着业务增加,单个 DB 是无法承载这么多的请求的。于是就有了主从复制、读写分离的解决方案

master 只负责写请求,slave 同步 master 用来服务读请求
主从功能的问题:
业务继续增长,master 甚至都无法承载所有的写请求。数据库需要按业务拆分。

垂直拆分的问题:
业务继续增长,订单表有大量的并发写入,而且已经有了几千万行数据。
参考:
大众点评订单系统分库分表实践

水平分库/分表带来的问题
Mysql 的主要瓶颈,单机单进程。CPU 有限、内存/磁盘功能、连接数有限、网卡吞吐有限。。。
集群的限制点
集群的方案
放弃部分功能,辅助索引检索、join、全局事务性、聚合函数等。当然有些牛逼的分布式数据库,试图解决这些问题(如 TIDB)。

单个 region 过大,RegionServer 将 region 会均分为两个(自动、手工)。然后更新 .META. 表
RegionServer 向 HMaster 汇报状态。HMaster 为 RegionServer 负载均衡,调整其负责的 region
增/删 RegionServer 后,会为重新调整 region 的分配方式
RegionServer 只是计算单元,挂掉后 Hmaster 可以随便再找一个节点代替坏节点服务
HBase 只保证行级事务,单行数据肯定存在同一台机器 (单机事务很好做)
数据使用 HDFS 存储,多复本,任何一个复本挂掉都不影响功能
RegionServer 只是计算单元,挂掉后不影响服务
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3164020/ ,如需转载,请注明出处,否则将追究法律责任。