如何设计 Hbase 架构以实现高性能

Posted

技术标签:

【中文标题】如何设计 Hbase 架构以实现高性能【英文标题】:how to design Hbase schema for high performance 【发布时间】:2015-08-19 22:39:33 【问题描述】:

对于设计性能良好的 Hbase 架构有什么好的建议吗?例如:不要使用太多的columnFamily,因为太多的columnFamily会导致读/写慢?在不同的columnFamily中将大列与小列分开?我非常感谢任何建议。

【问题讨论】:

Lars George 的任何文章都值得一读。 每个设计都取决于您要解决的问题。所有问题都没有单一的解决方案 【参考方案1】:

HBase 表由列族组成,列族是列的逻辑和物理分组。一个族中的列与另一族中的列分开存储。如果您有不经常查询的数据,请将这些数据分配给单独的列族。

每行重复列族和列限定符名称。因此,尽量保持名称简短,以减少 HBase 存储和读取的数据量。例如,使用 f:q 代替 mycolumnfamily:mycolumnqualifier。

由于列族存储在单独的 HFile 中,因此列族的数量尽可能少。您还希望减少列族的数量以减少 MemStore 刷新的频率和压缩的频率。而且,通过使用尽可能少的列族,您可以缩短 LOAD 时间并减少磁盘消耗。

【讨论】:

以上是关于如何设计 Hbase 架构以实现高性能的主要内容,如果未能解决你的问题,请参考以下文章

HBase架构原理

hbase 的架构及设计

HBase 的架构及设计

详解HBase架构原理

HBase架构原理详情

亿级流量系统架构之如何设计全链路99.99%高可用架构