Hbase数据存储图解与数据检索流程详解

ゝ一纸荒年。 2023-07-05 10:22 199阅读 0赞

一、Hbase数据存储图解

Center

二、hbase表数据的检索流程图(读和写的流程)

1、hbase在Hadoop集群中的物理架构

  1. 由图中可以看出,存储模块主要包括了ZooKeeper集群、HMasterHRegionServer
  2. ZooKeeper
  3. Hbase是强依赖于ZooKeeper,我们读或写一个表的数据,都会优先访问ZooKeeper
  4. 通常是集群中单独的3/5台服务器。
  5. HMaster通常是Hadoop集群中的一台或两台(backup-Master)。
  6. HRegionServer通常是Hadoop集群中的部分或全部
  7. HRegionServer通常和datanode部署在同一台服务器上
  8. 比如datanode10个,HRegionServer可以是10个或小于10
  9. 2hbase架构图重要组件的名称及作用
  10. client:读/写访问hbase的用户
  11. ZooKeeper:基于观察者模式监控masterregionserver运行状态,保证hbase的高可用性,这是因为hbase是强依赖于ZooKeeper的。
  12. 存储了hbase的寻址入口,存储了hbase表的meta元数据表的位置信息,Meta也是一张表,meta表一般只有一个region,region存在哪台
  13. regionserver上,meta元数据表存储了哪些信息:
  14. 一张表有哪些reigon
  15. region分别分配到哪些regionserve
  16. 每个reigonstartkeystopkey的大小
  17. master
  18. 管理regionserver并分配表的regionregionserver
  19. 对集群的region的数量进行负载均衡管理
  20. master会借助ZooKeeper感知regionserver的上线和下线
  21. master一般会有两台(backup-Master),保证master的高可用性
  22. master不参与hbase表数据的读和写,负载通常比较低
  23. master宕机一段时间内集群可以保持正常的读写
  24. regionserver
  25. 管理所在服务器节点上的所有region
  26. 负责响应客户端的读写请求(IO
  27. 三大机制(flushcompactsplit
  28. Hlog
  29. 预写日志
  30. 用来临时保存写入到memstore中的数据,防止宕机造成memstore中的数据丢失
  31. Hadoop:
  32. 利用hdfshbase提供存储,hbase是相当于Hadoop的一个客户端
  33. hdfs上存储了hbase的两种数据:
  34. HFile
  35. hbase表的数据文件
  36. Hflie文件是Hadoop的二进制格式文件
  37. Hlog
  38. 预写日志
  39. HlogHadoopsequence格式的文件
  40. 3hbase表数据的写入流程:(根据rowkey进行写入)Georgia
  41. A.
  42. client先去访问ZooKeeper,从ZooKeeper上获取meta表的位置信息
  43. i.以前的版本hbase的系统表除了meta表还有root
  44. ii.在root表中存储了meta表的位置信息
  45. iii.新版本中将meta表的位置信息直接存入ZooKeeper
  46. B. clientmeta表的region所在的regionserver发起访问,读取meta表的数据,获取了hbase集群上所有的表的元数据
  47. C. 根据meta表的元数据信息(某张表有几个regionregion如何分配及每个reigonstartkeystopkey),client找到当前要写入的表对应的region及所在regionserver信息
  48. D. client向对应的regionserver发起写入请求
  49. E. regionserver收到client请求并响应,client先把数据写入到Hlog防止数据丢失
  50. F. 再把数据写入到memstore内存缓存区(默认大小128M
  51. G. 当数据写入到Hlogmemstore内存缓存区都成功时,写入才算成功
  52. H. memstore达到128M或其他的因素的触发,会将memstore中的数据flushstoreFile
  53. I. storeFile越来越多,会触发compact合并,将多个storeFile文件最终合并成一个文件
  54. i.合并分为minor compact major compact
  55. ii.在大合并期间打上‘删除’标签的cell或者过期的cell会被统一清理
  56. J. 当某个store下的某个storeFile文件的最终合并后的大小达到10G时,会触发整个regionsplit分割,一个region一分为二,由master进行分配
  57. 注意:一个store下面可能有多个storefile
  58. 4hbase表数据的读流程:(根据rowkey读)
  59. 1client先去访问zookeeper,从zookeeper上获取meta表的位置信息
  60. 以前的版本hbase的系统表除了meta表还有root
  61. root表中存储了meta表的位置信息
  62. 新版本中将meta表的位置信息直接存入zookeeper
  63. 2clientmeta表的region所在的regionserver发起访问,读取meta表的数据,获取了hbase集群上所有的表的元数据
  64. 3、根据meta表的元数据信息(某张表有几个regionregion如何分配及每个reigonstartkeystopkey),client找到当前要写入的表对应的region及所在regionserver信息
  65. 4client向对应的regionserver发起读请求
  66. 5regionserver收到客户端的读请求,会先扫描memstore,在扫描blockcache(读缓存),没有找到数据后再去读取storeFile文件
  67. 6regionserver将数据响应给client

发表评论

表情:
评论列表 (有 0 条评论,199人围观)

还没有评论,来说两句吧...

相关阅读

    相关 HBase读写数据流程操作步骤

    数据库最常见的操作就是读写数据,接下来,针对HBase读写数据的流程进行详细介绍。 读数据流程 从HBase中读数据的流程其实就是寻址的流程,具体流程如下: (1) Cl

    相关 HBase海量数据存储实战

    数据库最常见的操作就是读写数据,接下来,针对HBase读写数据的流程进行详细介绍。 读数据流程 从HBase中读数据的流程其实就是寻址的流程,具体流程如下: (1) Cl

    相关 数据存储HBase

    这两天要写一个方案,某单位想建一个中心数据库,汇聚各业务系统数据,以及各种网上抓取的预报数据。我设想是用HBase。 主要考虑点是: 1、开源 2、支持海量数据 该单