SuperAPI AI 工具集

hbase

数据与分析

查看项目

更新于 10-15 23:46

技能介绍

用途:HBase 是 Hadoop 生态中的数据库,属于分布式、可扩展的大数据存储,提供对海量数据的随机、实时读写访问。适合需要随机读写 HDFS 数据(HDFS 通常为一次写入多次读取)的场景,可与 HDFS、Hive、Spark 深度集成,用于服务数十亿行数据的低延迟访问。

主要能力:数据按列族分组(如 info:name、info:email),同一列族物理上存储在一起;通过把表拆分为 Region 并托管在 Region Server 上实现横向扩展;写入先进入预写日志 WAL(磁盘)与 MemStore(内存),MemStore 写满后刷写到 HFile(HDFS)。

使用方式:可通过 Java API 或 Shell 使用。示例命令:create 'users', 'info', 'data';put 'users', 'row1', 'info:name', 'Alice';get 'users', 'row1'。

最佳实践:谨慎设计行键,行键决定排序与分片,顺序键会造成热点,可用加盐或哈希;预先拆分 Region,不要从单个 Region 开始,应基于已知键分布预拆分;可使用 Apache Phoenix 在 HBase 上提供 SQL 层,使其像关系型数据库一样使用。

限制:不适合小数据,HDFS、ZooKeeper、HBase 的开销很大,仅适用于 TB 级以上规模;不要过度扫描,全表扫描属于 MapReduce 作业。

参考资料:Apache HBase Reference Guide。