阿里云数据库HBase支持自由组合Master和Core节点规格,数量和盘的种类。您可以根据业务特征(如QPS、存储量、读写请求、相应延迟、稳定性等)自由搭配。
选型主要包括以下几个方面:
Master机器的规格。
Core节点的规格和数量。
盘的大小和种类。
HBase版本。参见HBase版本选择。
ECS版本:独享规格。独享规格是完全没有资源争抢的规格,资源保障稳定,延迟敏感的业务请务必使用独占且选择SSD云盘。
Master选择
Master节点不带存储,默认是主备保障单点容灾。Master节点上会部署HBase的Master,HDFS的Namenode和Zookeeper等,是集群中重要节点。如果master的CPU不够或者内存不够,会严重制约HBase的性能。
core的规模 | master选择 |
< 4台 | 4核/8 GB |
4 <= core数 < 8 | 8核/16 GB (小规模集群推荐Master规格) |
8 <= core数 <16 | 8核/32 GB |
大于16台 | 16核/64 GB或者以上 |
Master的规格不仅受到Core节点数量的影响,还和集群上表的数量和地域的数量有关,如果集群的表数量或者地域数量非常多,Master节点也需要适当选择高规格。
Core选择
Core节点指HBase的RegionServer,您可根据业务请求量来选择合适的Core节点规格。Core节点支持的范围为:4核/8 G 至 32核/128 G。
为了达到最佳性能,通常我们以元信息能够全部放入缓冲作为高性能的重要依据。针对不同的实例,如下给出的节点选择示例供参考:
小实例:推荐使用4核16 GB或8核32 GB。
中大实例:根据内存与数据量的比例,来选择Core节点。
存储量大:推荐使用16核64 GB或32核128 GB。
存储量小:推荐使用16核32 GB或32核64 GB。
请求量的多少并不是Core节点选择的唯一标准,进行节点选择时,需要综合多方面考虑。例如:某个业务的请求量为每秒数百,根据请求量判断,选择4核8 GB的节点即可。但如果该业务中,若假设存在以下几种情况,选择4核8 GB的Core节点可能会导致业务不稳定和延迟上涨。
用户请求的一行数据非常大,存在几KB,甚至数MB。
Scan请求中存在复杂的Filter。
请求的Cache命中率很低,每个请求都会请求磁盘。
集群上表和region非常多。
若需要辅助容量评估,请在钉钉上联系云HBase答疑
钉钉号或者发起工单咨询。
下表给出一些简单的建议,但是评估Core节点的规格需要综合多方面考虑。
TPS+QPS | Core的个数及选择 | 建议 |
小于1000 | 2台 4核16 GB | 推荐的最低规格,适合低负载访问。每台Core节点上的region不宜超过600个。 云HBase中能买到的最低Core节点为4核8 GB,但不推荐4核8 GB规格,8 GB的内存过小,在面对高峰和大KV时容易出现OOM等不稳定现象。 |
1000 ~ 2W | 2~3台 8核32 GB | 8核32 GB是我们推荐的适合中低负载的规格,价格相比8核16 GB贵的不多,但内存翻倍,稳定性更好。 |
2W以上 | 8核32 GB,16核32 GB,16核64 GB,32核64 GB,32核128 GB, 或者以上 | 按照实际请求量选择Core节点的数量,如果是在线型业务,适当选择大内存机型来增加Cache命中率来提高性能。如果有MR/Spark等离线大负载任务要运行或者TPS/QPS非常高,需要适当选择大核机器。 |
选择高配置机器还是更多Core节点?
HBase支持水平无限扩展,当出现负载过高,延迟变高,不稳定,可以通过水平增加Core节点解决。但是由于业务设计的问题或者使用问题,很可能出现单机热点,因此Core节点的规格决定了单机抗热点的能力。因此把Core节点的规格选择的特别低,只通过水平扩展Core节点的方式,在面对风险时的稳定性会没有高配机型来得强。如果有瞬时的大请求打过来,或者偶发的热点流量(在一个地域),低配的机器可能会出现负载过高或者OOM影响整体的稳定性。
因此,我们建议Core节点的规格要根据业务事先做好评估,选择合适规格的Core节点。
如果事先选择的Core节点或者Master节点规格无法满足要求,我们还将提供原地升配的功能,将Core/Master的配置升级到合适规格,详情请钉钉上联系云HBase答疑
(钉钉号:s0s3eg3)或者发起工单咨询。
存储介质
存储介质分为3个大类,云盘,本地盘和冷存储。
云盘: 云盘的特点是灵活和高可靠。云盘本身有副本冗余,完全屏蔽了硬件细节,不会因为坏盘等原因丢失数据。并且可以自由扩容,是业务的首选存储介质。云盘分为SSD云盘和高效云盘。
本地盘: 本地盘即真实的物理盘,特点是价格比云盘便宜,但是本地盘大小与机型强绑定,不能对单块磁盘扩容,只能通过增加Core节点来增加存储容量,而且本地盘机型ECS也不支持升配,灵活性没有云盘强。同时,本地盘如果出现坏盘会对用户产生影响(单块坏盘不会出现丢数据,出现坏盘后,云HBase团队会第一时间处理更换)。本地盘购买的起步较高,适合存储容量大的大客户。
冷存储:阿里云HBase特有存储,基于OSS实现,冷存储可以搭配云盘使用,用户可以将不常用数据存储到冷存储或者使用冷热分离功能自动实现冷数据归档来降低成本。
在选定了存储介质后,集群的存储介质不可以再更改,其中云盘可以通过扩容或者增加Core节点来增加容量,但本地盘只能通过增加Core节点扩容。例外的是冷存储,冷存储功能不一定需要在开通HBase集群时购买,可以在之后的使用过程中随时开通和扩容。
冷热程度 | 介质类型 | 业务类型 |
高性能 | SSD云盘/本地SSD盘/ESSD云盘 | 适合对延迟要求高的在线业务,如广告、推荐、Feed流、人物画像等业务,SSD/ESSD盘的延迟低,通常在1~2ms左右,最重要的是毛刺率低。对P99延迟(99%请求的最大延迟)在意的用户首选。 |
高效能 | 高效云盘/本地HDD盘 | 适合对延迟要求一般的在线业务,HDD盘的延迟通常在10ms量级,但毛刺率要比SSD盘要大。 |
冷数据 | OSS(冷存储) | 准在线业务,或者归档业务。冷存储配合云盘/本地盘写吞吐基本与云盘/本地盘一致。但读冷存储QPS有限制,读延迟通常在数十毫秒量级。 |