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 ...
随机推荐
- c#XML操作类的方法总结
using System.Xml;using System.Data; namespace DotNet.Utilities{ /// <summary> /// Xml的操作 ...
- 检测Windows程序的内存和资源泄漏之原生语言环境
最近接连收到大客户的反馈,我们开发的一个软件,姑且称之为App-E吧,在项目规模特别大的情况下,长时间使用会逐渐耗尽内存,运行越来越缓慢,软件最终崩溃.由于App-E是使用混合语言开发的,主界面使用C ...
- iOS开发之状态栏
从iOS7开始,状态栏默认情况下归控制器管理,比如状态栏的样式.状态栏的是否可见 控制器通过重写以下方法来控制状态栏 设置状态栏的样式,只需重写下列方法即可: - (UIStatusBarStyle) ...
- webkit图片滤镜
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- TextRank:关键词提取算法中的PageRank
很久以前,我用过TFIDF做过行业关键词提取.TFIDF仅仅从词的统计信息出发,而没有充分考虑词之间的语义信息.现在本文将介绍一种考虑了相邻词的语义关系.基于图排序的关键词提取算法TextRank [ ...
- [SinGuLaRiTy] SplayTree 伸展树
[SinGuLaRiTy-1010]Copyrights (c) SinGuLaRiTy 2017. All Rights Reserved. Some Method Are Reprinted Fr ...
- 神奇的marquee--滚动的文字
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- UILabel的讲解
首先,我先自定义几个名词,方便接下来的讲解工作.如下图所示: 接下来,通过五个方面来讲解我们能对UILabel做出哪些改变或者称之为设置: 1.文字 1.1普通文字:内容text.字体大小font.字 ...
- Ubuntu 分辨率调整及操作问题解决
步骤: 1.在控制窗口上:点击 设备--->安装则鞥强功能:如图1: 若点击后出现图2的情况,则在左边找到光盘图标,右键-->弹出(图3): 然后再重复本步骤: 图1 图2 图3 2.在 ...
- Crgwin 简介及安装
Crgwin 简介 Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购 ...