Hbase的架构原理、核心概念

时间:2022-10-21 13:50:05

Hbase的架构原理、核心概念

1.Hbase的表、行、列、列族

2.核心组件:

Table和region

  Table在行的方向上分割为多个HRegion,

  一个region由[startkey,endkey)表示,每个HRegion分散在不同的RegionServer中

client作用:

  提供用户操作hbase的接口(shell、java的api接口)

zookeeper作用:

  Zookeeper集群存储-ROOT-表的地址和Master地址(-ROOT-表在0.96.0之后已经被替换)

  RegionServer主动向Zookeeper注册使得Master可随时感知各Region Server的健康状态。

  Zookeeper另一个重要作用是保证任何时候hbase集群中只有一个激活状态的hmaster,

  已达到hmaster高可用(hbase本身是高可用).

Hmaster:

  负责HBase中Table和Region的管理,包括表的增删改查

  Region Server的负载均衡

  Region分布调整

  Region分裂以及分裂后的Region分配

  Region Server失效后的Region迁移等。

HRegionServer的作用:

  HRegionServer 主要负责相应用户的I/O请求,进而跟HDFS交互,从HDFS中读写数据,虽然每个进程都很重要,但个人认为HRegionServer是HBase中最核心的进程。

下面对HRegionServer的内部结构做一个简单描述:

  HRegionServer 内部管理了一系列的HRegion对象,HRegion和Region是一回事吗?其实HRegion对应了Table中的一个Region,HRegion是对其进行的封装。

  每个HRegion中由多个HStore组成。HStore则对应Table中的Column Family,

  不论此Column Family 内部有多少数据,都会创建一个新的HStore,因此将相同属性的数据放进相同的Column Family 很有必要,避免一次访问,

  访问多个HStore,性能低下。而HStore 则是HBase的核心的存储单元了,而HStore由两个部分组成,一是MemStore,再就是StoreFile

  MemStore 是Sorted Memory Buffer ,client 写入的数据先写入MemStore,当达到MemStore的阀值时,将其Flush 成为一个StoreFile(HFile),StoreFile 则是存储在硬盘上的文件。

总结:

  ---处理对用户对这些region的I/O请求

  ---Regionserver维护region对象

  ---Regionserver负责切分在运行过程中变得过大的region

Hlog的作用(默认是打开):

  通过hbase的WAL(write-ahead-log)机制来保证数据写入时出现异常,方便恢复。

HRegion作用:

  是表中的一部分,rs会默认按照rowkey来进行拆分成多个region。

storefile:

  存储单元,存储基本单位,相当于一个列族。

memstore:

  内存缓冲区,一个store对应一个memstore,当在写数据时,首先将数据

  写入到Hlog,然后再写入到memstore,当达到memstore的溢写阈值时才会将数据flush到hdfs中。

HFile:

  相当于存储一列数据。

组件对应关系:

  hmaster:hregionserver=1:n

  hregionserver:hlog=1:1

  hregionserver:hregion=1:n

  hregion:store=1:n

  store:memstore=1:1

  storeFile:HFile=1:1

HBase中的数据最终存储在DataNode的块Block上

Hbase的架构原理、核心概念的更多相关文章

  1. SpringCloud升级之路2020.0.x版-16.Eureka架构和核心概念

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford Eureka 目前 ...

  2. 《大型网站技术架构:核心原理与案例分析》【PDF】下载

    <大型网站技术架构:核心原理与案例分析>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062557 内容简介 本书通过梳理大型网站 ...

  3. tensorflow核心概念和原理介绍

    关于 TensorFlow TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库. 节点(Nodes)在图中表示数学操作,图中的线(edges)则表示 ...

  4. Flume NG基本架构与Flume NG核心概念

    导读 Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中. 由原来的Flume OG到现在的Flume NG, ...

  5. dubbo入门学习&lpar;一&rpar;-----分布式基础理论、架构发展以及rpc、dubbo核心概念

    一.分布式基础理论 1.什么是分布式系统? <分布式系统原理与范型>定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统” 分布式系统(distributed ...

  6. 大数据体系概览Spark、Spark核心原理、架构原理、Spark特点

    大数据体系概览Spark.Spark核心原理.架构原理.Spark特点 大数据体系概览(Spark的地位) 什么是Spark? Spark整体架构 Spark的特点 Spark核心原理 Spark架构 ...

  7. Spark集群基础概念 与 spark架构原理

    一.Spark集群基础概念 将DAG划分为多个stage阶段,遵循以下原则: 1.将尽可能多的窄依赖关系的RDD划为同一个stage阶段. 2.当遇到shuffle操作,就意味着上一个stage阶段结 ...

  8. Java生鲜电商平台-SpringCloud微服务架构中核心要点和实现原理

    Java生鲜电商平台-SpringCloud微服务架构中核心要点和实现原理 说明:Java生鲜电商平台中,我们将进一步理解微服务架构的核心要点和实现原理,为读者的实践提供微服务的设计模式,以期让微服务 ...

  9. 002&sol;区块链核心概念与原理详解(Mooc)

    1.课程介绍 (一).区块链前世今生 密码朋克--神秘组织(邮件组) 2.区块链核心概念与原理 (一)比特币是数字货币 为什么叫区块链? 因为比特币系统里面的数据是一个个的区块来存储,并且通过hash ...

随机推荐

  1. pycharm licenseserver 注册方法

    pycharm5.0之后,以前的很多注册码都无法使用,可以选择使用license server 方式进行注册,方法如下: 注册方法:    在 注册时选择 License server ,填 http ...

  2. 解决hibernate删除时的异常

    由于关联关系是一对多和多对一的关系,于是在代码中需要删除多的一方的对象时出现了 deleted object would be re-saved by cascade (remove deleted ...

  3. 免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Express-C、Oracle XE)

    SQLite数据库是中小站点CMS的最佳选择 SQLite 是一个类似Access的轻量级数据库系统,但是更小.更快.容量更大,并发更高.为什么说 SQLite 最适合做 CMS (内容管理系统)呢? ...

  4. VS2010环境下使用VB开发网络编程(WinHttp)

    首先点项目——>添加引用——>COM选项卡——>Microsoft WinHttp Services,version 5.1,然后点确定就可以添加Winhttp到项目引用中. 1.如 ...

  5. Linux系统环境下Tomcat8、httpd、mysql8开机自启动配置

    Linux系统环境下Tomcat8.httpd.mysql8开机自启动配置: 相关命令:chkconfig 参考链接:https://jingyan.baidu.com/article/6525d4b ...

  6. AARRR 量化感染率

    小结: 1. 用户生命周期 2. K因子量化了感染的概率,即一个已经感染了病毒的宿主所能接触到的所有宿主中,会有多少宿主被其传染上病毒. 假设平均每个用户会向20个朋友发出邀请,而平均的转化率为10% ...

  7. Kickstart无人值守安装&lbrack;转载&rsqb;

    导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装. 常规的办法有什么? 光盘安装系统===>一个服务器DV ...

  8. springboot 配置webservice接口

    导入依赖的jar <!-- webservice cxf --> <dependency> <groupId>org.apache.cxf</groupId& ...

  9. 海思hi35xx 开发学习&lpar;2&rpar;&colon;系统控制

    应用程序启动 MPP 业务前,必须完成 MPP 系统初始化工作.同理,应用程序退出MPP 业务后,也要完成 MPP 系统去初始化工作,释放资源. 视频缓存池 一组大小相同.物理地址连续的缓存块组成一个 ...

  10. C&num;几种常用的加密方式

    一.AES加密算法   AES算法基于排列和置换运算.排列是对数据重新进行安排,置换是将一个数据单元替换为另一个.AES 使用几种不同的方法来执行排列和置换运算.    AES是一个迭代的.对称密钥分 ...