HBase基础概念
程序员文章站
2022-06-30 09:15:42
定义 非关系型分布式列式数据库,支持大数据量查询(百万,上亿行) 概要 数据存储:HDFS 数据计算:MapReduce/Spark 服务协调:Zookeeper 特征 列式存储(列只有一种类型byte[]) 分布式 大数据存储(百万,上亿行; 上万列) 伸缩性,扩展性(列根据业务随意添加) 随机快 ......
定义
非关系型分布式列式数据库,支持大数据量查询(百万,上亿行)
概要
- 数据存储: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上
上一篇: PHP实现视频文件上传完整实例
下一篇: PHP中echo和print的区别