Hbase的架构原理、核心概念
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的架构原理、核心概念的更多相关文章
- SpringCloud升级之路2020.0.x版-16.Eureka架构和核心概念
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford Eureka 目前 ...
- 《大型网站技术架构:核心原理与案例分析》【PDF】下载
<大型网站技术架构:核心原理与案例分析>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062557 内容简介 本书通过梳理大型网站 ...
- tensorflow核心概念和原理介绍
关于 TensorFlow TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库. 节点(Nodes)在图中表示数学操作,图中的线(edges)则表示 ...
- Flume NG基本架构与Flume NG核心概念
导读 Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中. 由原来的Flume OG到现在的Flume NG, ...
- dubbo入门学习(一)-----分布式基础理论、架构发展以及rpc、dubbo核心概念
一.分布式基础理论 1.什么是分布式系统? <分布式系统原理与范型>定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统” 分布式系统(distributed ...
- 大数据体系概览Spark、Spark核心原理、架构原理、Spark特点
大数据体系概览Spark.Spark核心原理.架构原理.Spark特点 大数据体系概览(Spark的地位) 什么是Spark? Spark整体架构 Spark的特点 Spark核心原理 Spark架构 ...
- Spark集群基础概念 与 spark架构原理
一.Spark集群基础概念 将DAG划分为多个stage阶段,遵循以下原则: 1.将尽可能多的窄依赖关系的RDD划为同一个stage阶段. 2.当遇到shuffle操作,就意味着上一个stage阶段结 ...
- Java生鲜电商平台-SpringCloud微服务架构中核心要点和实现原理
Java生鲜电商平台-SpringCloud微服务架构中核心要点和实现原理 说明:Java生鲜电商平台中,我们将进一步理解微服务架构的核心要点和实现原理,为读者的实践提供微服务的设计模式,以期让微服务 ...
- 002/区块链核心概念与原理详解(Mooc)
1.课程介绍 (一).区块链前世今生 密码朋克--神秘组织(邮件组) 2.区块链核心概念与原理 (一)比特币是数字货币 为什么叫区块链? 因为比特币系统里面的数据是一个个的区块来存储,并且通过hash ...
随机推荐
- Linux MTD子系统 _从模型分析到Flash驱动模板
MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化 ...
- 走入PHP-declare、ticks、encoding、include
declare 结构用来设定一段代码的执行指令.declare 的语法和其它流程控制结构相似(该代码为语法格式,不是代码案例,无需敲打该代码): declare (directive) stateme ...
- Java核心编程快速学习
Java核心编程部分的基础学习内容就不一一介绍了,本文的重点是JAVA中相对复杂的一些概念,主体内容如下图所示. 反射reflect是理解Java语言工作原理的基础,Java编译器首先需要将我们编写的 ...
- 机器学习:R语言中如何使用最小二乘法
详细内容见上一篇文章:http://www.cnblogs.com/lc1217/p/6514734.html 这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下:(数据同 ...
- Quartz.NET总结(六)了解Jobs 和 Triggers
前面讲了一些Quartz.net 的一些东西, http://www.cnblogs.com/zhangweizhong/category/771057.html 但是发现有一些基础的东西,没有说到. ...
- NPM使用技巧
如果你是一个JavaScript系的开发者,一定不会陌生NPM,它既是一个平台,也是一个工具.在这个平台上,我们能够使用其他开发者提供的功能代码,当然我们也能将我们自己代码提交到这里分享给世界上的开发 ...
- 记录一次raid数据恢复及回迁成功的案例
故障发生在两块盘组成的一个raid0上,其中的一块盘亮黄灯,被raid卡踢出后,raid崩溃,下面就把当时抢救数据的整个过程进行介绍. 由于硬盘是两块SAS 300G的硬盘,先把硬盘从机器中拔出来,然 ...
- MySQL学习笔记(一)—数据库基础
一.数据库概述 1.数据库的组织结构 (1)数据库就是用来存放信息的仓库. (2)数据库里的数据集合都存放在数据表(table)里. (3)数据表由数据行(row)和数据 ...
- yii2 创建ActiveForm(表单)
表单的生成表单中的方法 ActiveForm::begin()方法 ActiveForm::end()方法 getClientOptions()方法 其它方法:errorSum ...
- 图文详解linux如何搭建lamp服务环境
企业网站建设必然离不开服务器运维,一个稳定高效的服务器环境是保证网站正常运行的重要前提.本文小编将会详细讲解Linux系统上如何搭建配置高效的lamp服务环境,并在lamp环境中搭建起企业自己的网站. ...