欢迎投稿

今日深度:

hbase优点与数据检索流程,hbase优点检索

hbase优点与数据检索流程,hbase优点检索


hbase优点

hbase是一个列式存储的非关系型数据库,依赖于zookeeper。数据存储于hdfs上,主节点是HMaster,从节点是HRegionServer.

hbase与关系型数据库相比较优点如下:
1. hbase数据存储于hdfs上,可扩展性强。数据条目数可以存储上一条。
2. 通过rowkey检索数据,速度可以准实时,达到秒级别。
3. 写数据非常快,只要写在Region的memstore内存中即可,不需要重复IO消耗。
4. 每份数据都有多份备份,保证数据安全性。
5. 从成本上来说关系型数据库要用到商用小型机,价格要几百万非常昂贵。但是hdfs只需要普通的商用server,只要几万一台。

hbase数据模型

region介绍

每个表刚开始只有一个region,region的strartRowKey和endRowKey都是空的。当region的大小超过一定的阀值后,就会按照key的中间值分裂成两个region,老的region下线。比如中间值是111000,则新的2个region如下:

null
      region1
111000
      region2
null
rowkey按照大小排序,新的rowkey会按照大小插入对应的region

数据检索的三种方式

1)get rowkey
2)scan range  -->  最多的
3)scan 

hbase数据检索流程

hbase架构图

客户端对数据的读和写首先连接zookeeper,在zookeeper中找到meta-region-server节点,meta表被哪个RegionServer管理。
meta表只有一个region,客户端通过表+rowkey在meta表中找这个表的rowkey被哪个RegionServer管理。meta表保存了对应的主机端口,找到后执行相应的操作。

list_namespace_tables 'hbase'查看hbase命名空间下的表
scan 'hbase:meta' 查看meta表信息

hbase数据存储

一张表有1个或多个region,region有几个列簇就有几个store。每个store中有一个memstore和0个或多个storefile。

storefile是存在hdfs上的二进制文件,读数据先到memory中读,没有在去storefile中读
在写数据的时候先往HLog写一份,在往memstore中写一份。当memory达到一定大小后,flush到storefile里面去。

注意:

优化:

老版本是一个regionserver一个HLOG,而新版本可以设置一个region一个HLog。
老版本对数据恢复需要分割日志,而新版本可以直接对region的日志做数据还原。但是需要消耗更多的IO,因为要同时打开多个HLog。

数据检索总结

client写入-》存入MemStore,一直到MenStore满-》Flush成一个StoreFile,直至增长到一定阀值-》触发合并操作-》多个storeFile合并后,逐步形成越来越大的storefile-》单个storeFile大小超过一定阀值后,触发split操作,把当前region 分成2个region,region下线。新split出的2个孩子region会被HMaster分配 到相应的HRegionServer上,使得原先的region的压力分流道2个region上

注意:

hbase只是增加数据,所有的更新和删除操作,都是在文件合并阶段做的。所以用户写操作只需要进入内存即可立即返回,从而保证I/0高性能

hbase架构

client端

  • 整个HBase集群访问的入口
  • 使用HBase采用Rpc机制与HMaster与HMaster和HRegionServer进行通信
  • 与HMaster进行通信进行管理类操作
  • 与HRegionServer进行数据读写类操作
  • 包含访问HBase的接口,并维护cache来加快对HBase的访问

HMaster

Client访问hbase上数据的过程并不需要master参与(寻址访问Zookeeper和HRegion Server)数据读写访问HRegion Server,HMaster仅仅维护table和Region的元数据信息,负载很低

  • HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行主要负责Table和Region的管理工作 管理用户对table的增删查改操作

    在HBase的conf目录下创建backup-masters文件,在里面添加其他主机名称。
    保存后执行hbase-deamons.sh start master-backup

  • 管理HRegionServer的负载均衡,调整Region分布 Region Split后,负责新Region的分布

  • 在HRegionServer停机后,负责失效HRegionServer上Region迁移工作

HRegionServer

  • 维护HRegion,处理对这些HRegion的IO请求,向HDFS文件系统中读写数据;
  • 负责切分在运行过程中变得过大的HRegion

zookeeper

  • 保证任何时候,集群只有一个HMaster
  • 存储所有HRegion的寻址入口
  • 实时监控HRegionServer的上线和下线功能,并实时通知给HMaster
  • 存储HBase的schema和table元数据
  • zookeeper Quorum存储-ROOT-(新版本是meta表)地址、HMaster地址

hbase管理zookeeper实力,但是在生产环境中要禁用

注意:hbase-env.xml中,找到export HBase_managers_zk设置为false

www.htsjk.Com true http://www.htsjk.com/hbase/34321.html NewsArticle hbase优点与数据检索流程,hbase优点检索 hbase优点 hbase是一个列式存储的非关系型数据库,依赖于zookeeper。数据存储于hdfs上,主节点是HMaster,从节点是HRegionServer. hbase与关系型数据库相...
相关文章
    暂无相关文章
评论暂时关闭