定义

非关系型分布式列式数据库,支持大数据量查询(百万,上亿行)

概要

  • 数据存储:HDFS
  • 数据计算:MapReduce/Spark
  • 服务协调:Zookeeper

特征

  • 列式存储(列只有一种类型byte[])
  • 分布式
  • 大数据存储(百万,上亿行; 上万列)
  • 伸缩性,扩展性(列根据业务随意添加)
  • 随机快速访问:归功于region分区
  • 强一致性(同一行的数据分布在同一个region)
  • 自动分片(当storeFile达到阀值值,自动把一个region分裂成两个,同时刷新hbase:meta表,以更新region信息)
  • regionserver自动故障转移(failover):当一个regionserver进程挂掉时,Master会自动将原先regionserver
    下的reigon进行重新分配到其它regionserver
  • 支持mapreduce,hdfs: 数据导入,数据存储
  • java api
  • thrift/rest api
  • block cache
  • web ui

不适用场景

  • 关联
  • 事务
  • 列类型设置
  • 二级索引
  • 高级查询(存储过程,触发器等)

什么时候选用HBase

结合二三即可

  • 大数据
  • 能够承受丢失RDBMS的特征
  • 有足够的硬件资源

HBase与HDFS的区别

虽然HBase数据存储在HDFS上,但查询数据的速度区别很大

  • HDFS:属于全表扫描查询,速度很慢
  • HBase:根据rowKey分区,只选择部分相应的region查询,速度很快

HBase系统表

1.也叫目录表(hbase:meta): 用于保存所有region信息

2.存放在zookeeper中,默认路径是 /hbase/meta-region-server (终端执行zkCli.sh)

3.存放目录由hbase-site.xml中zookeeper.znode.rootserver控制

Master节点

由于meta数据不是存储在master节点,故当master挂掉时,hbase client can still run for a short time.

  • 运行在namenode
  • 管理regionserver
  • 触发meta表的更新

WAL(Write Ahead Log)

数据先已文件形式写入HLog,再写入memstore

RegionServer

管理region,部署在DataNode上

版权声明:本文为dzqk原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dzqk/p/10008965.html