分布式架构的 HBase,挺适合应对 PB 级大数据,是半结构化和非结构化数据。你只要理解 Region 和 RegionServer 的分布逻辑,基本就能掌握它的伸缩方式。
列式存储的机制,读起来还挺高效。数据按列族组织,比如cf:price
、cf:count
这种结构,查询只拿需要的列,速度快,资源也省。
实时读写能力也不赖。写进去的数据,立马就能读,靠的是内存缓存加WAL。这对日志系统、实时统计场景挺友好。
强一致性靠的是 Zookeeper 帮忙搞协调,挂了一台 Region Server 也能自动转移,不用太担心容错问题。配上MapReduce还能跑批,起来也方便。
还有个点多人会忽略:行键的设计关键,设计不好,读写都慢。一般会把热数据打散,用前缀做区分。
至于查询功能,HBase 原生确实比较弱,但你可以用Phoenix做 SQL 层,或者写Coprocessor搞点定制逻辑,也能补上这一块短板。
如果你刚上手,建议看看《HBase 权威指南》和《HBase 实战》。前者讲原理多一点,后者偏实操,结合来看效果最好。
相关文章也别错过,比如HBase 概述和列式存储数据库这些,都能帮你拓宽理解。
如果你在做日志系统、推荐系统或者物联网,HBase 真的可以试试。写起来不复杂,扩展起来还挺稳的。