HBase体系架构说明

HBase体系架构说明!
这里写图片描述
client:两种—-Hbase shell 命令行接口
JavaAPI
client访问Region不能直接访问,首先client需要先连接到zookeeper,zookeeper管理HMaster,说明,hdfs集群,在没有zookeeper的情况下也可以跑起来,但是HBase没有zookeeper是起不开的,因为zookeeper中存储了HBase中元数据表的信息。所以client先访问zookeeper,通过zookeeper到HMaster,HMaster作为调度者,相当于hdsf中的namenode,但是hdfs中的namenode自己存放元数据信息,但是HBase中的HMaster比较懒,将元数据信息将给了他的秘书,zookeepe存储。存数据信息的在下面的一个个的HRegionServer,打工的小弟,相当于datanode,一个HRegionServer中含有多个HRegion,每个Region中有一个HLog,HLog存的是一些数据的写入信息,修改删除都会将这些信息记录下来,目的就是为了数据丢失出错的时候,进行回复,一个Region中一定会有一个HLog,用于数据回复,一个Region中有多个Store,一个Store对于的就是一个列族,一个列族在文件系统中对于一个目录,一个Store中一定会有一个MemStore,有若干个StoreFile,从0到n,StrreFlie相对于HBase来说的,相对于文件系统来说,叫做HFile,一个意思(StoreFile和HFile),一个Region对于表的一部分,
例如,
开始创建一个表。对于给这个表分配一个Region。
这个表含有两个列族,对应的是含有两个Store。
在表中插入数据,插入到Store中,首先放到 MemStore中,一块内存,数据来了先放入到内存中,内存有一个最大值,当数据量的大小值,就会写入到StoreFile中,
如果数据越来越多,到达了HRegion的最大值,这个时候就会分裂成多个Region,HMaster负责负载均衡,分配到多个HRegionServer上。

HBase简介

– HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩、
实时读写的分布式数据库
– 利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理
HBase中的海量数据,利用Zookeeper作为其分布式协同服务
– 主要用来存储非结构化和半结构化的松散数据(列存 NoSQL 数据库)

• HBase数据模型

– ROW KEY
– 决定一行数据
– 按照字典顺序排序的。
– Row key只能存储64k的字节数据

HBase数据模型

– Column Family列族 & qualifier列
– HBase表中的每个列都归属于某个列族,列族必须作为表模式(schema)
定义的一部分预先给出。如 create ‘test’, ‘course’;
– 列名以列族作为前缀,每个“列族”都可以有多个列成员(column);如
course:math, course:english, 新的列族成员(列)可以随后按需、动态加
入;
– 权限控制、存储以及调优都是在列族层面进行的;
– HBase把同一列族里面的数据存储在同一目录下,由几个文件保存。

HBase数据模型

– Timestamp时间戳
– 在HBase每个cell存储单元对同一份数据有多个版本,根据唯一的时间
戳来区分每个版本之间的差异,不同版本的数据按照时间倒序排序,
最新的数据版本排在最前面。
– 时间戳的类型是 64位整型。
– 时间戳可以由HBase(在数据写入时自动)赋值,此时时间戳是精确到毫
秒的当前系统时间。
– 时间戳也可以由客户显式赋值,如果应用程序要避免数据版本冲突,
就必须自己生成具有唯一性的时间戳。

HBase数据模型

– Cell单元格
– 由行和列的坐标交叉决定;
– 单元格是有版本的;
– 单元格的内容是未解析的字节数组;
• 由{row key, column( = +), version} 唯一确定的单元。cell中的数据是没
有类型的,全部是字节码形式存贮。

HBase数据模型

– HLog(WAL log)
– HLog文件就是一个普通的Hadoop Sequence File,Sequence File 的Key是
HLogKey对象,HLogKey中记录了写入数据的归属信息,除了table和
region名字外,同时还包括 sequence number和timestamp,timestamp是”
写入时间”
,sequence number的起始值为0,或者是最近一次存入文件系
统中sequence number。
– HLog SequeceFile的Value是HBase的KeyValue对象,即对应HFile中的
KeyValue。

HBase体系架构

– Client
• 包含访问HBase的接口并维护cache来加快对HBase的访问
– Zookeeper
• 保证任何时候,集群中只有一个master
• 存贮所有Region的寻址入口。
• 实时监控Region server的上线和下线信息。并实时通知Master
• 存储HBase的schema和table元数据
– Master
• 为Region server分配region
• 负责Region server的负载均衡
• 发现失效的Region server并重新分配其上的region
• 管理用户对table的增删改操作
– RegionServer
• Region server维护region,处理对这些region的IO请求
• Region server负责切分在运行过程中变得过大的region

HBase数据模型

– Region
– HBase自动把表水平划分成多个区域(region),每个region会保存一个表
里面某段连续的数据;每个表一开始只有一个region,随着数据不断插
入表,region不断增大,当增大到一个阀值的时候,region就会等分会
两个新的region(裂变);
– 当table中的行不断增多,就会有越来越多的region。这样一张完整的表
被保存在多个Regionserver 上。
– Memstore 与 storefile
– 一个region由多个store组成,一个store对应一个CF(列族)
– store包括位于内存中的memstore和位于磁盘的storefile写操作先写入
memstore,当memstore中的数据达到某个阈值,hregionserver会启动
flashcache进程写入storefile,每次写入形成单独的一个storefile
– 当storefile文件的数量增长到一定阈值后,系统会进行合并(minor、
major compaction),在合并过程中会进行版本合并和删除工作
(majar),形成更大的storefile
– 当一个region所有storefile的大小和超过一定阈值后,会把当前的region
分割为两个,并由hmaster分配到相应的regionserver服务器,实现负载
均衡
– 客户端检索数据,先在memstore找,找不到再找storefile
– HRegion是HBase中分布式存储和负载均衡的最小单元。最小单元就表
示不同的HRegion可以分布在不同的 HRegion server上。
– HRegion由一个或者多个Store组成,每个store保存一个columns family。
– 每个Strore又由一个memStore和0至多个StoreFile组成。如图:StoreFile
以HFile格式保存在HDFS上。
这里写图片描述

这里写代码片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试中的这些坑,你踩过几个?

转载自 面试中的这些坑,你踩过几个? 01、请你做一个自我介绍 误区: 一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。 要点: 简历上有的可以一两句话带过,…

asp.net core 编译mvc,routing,security源代码进行本地调试

因为各种原因,需要查看asp.net core mvc的源代码来理解运行机制等等,虽说源代码查看已经能很好的理解了。但是能够直接调试还是最直观的。所有就有了本次尝试。因调试设置源代码调试太辍笔,所以不用这个方法,转而使用编译源代码的…

并查集判断是否有环存在

题目描述 思路分析 代码实现 package com.atguigu.disjointSet;public class djset {public static int VERTICES6;public static void initialise(int parent[]){int i;for (i 0; i < VERTICES; i) {parent[i]-1;}}public static int find_root(int x,int parent[]){int …

进入ASP .net mvc的世界

一、mvc执行流程&#xff1a; 启动mvc项目–>Global.asax–>App_Strat–>RouteConfig–>Controllers(控制器)–>View(视图)–Index.aspx 二&#xff1a;Controller&#xff0c;控制器的代码&#xff0c;包含动作方法和业务操作 三&#xff1a;View&#xff0c;…

Visual Studio 2017更新,侧重于提高稳定性

Microsoft已对其旗舰开发软件产品Visual Studio 2017&#xff08;VS2017&#xff09;的安装程序和设置引擎做了全新设计&#xff0c;意在能快速地部署更新到VS2017。VS2017的第一个命名版本更新在VS2017首发的一个月后就可用&#xff0c;这充分体现了这一全新设计的优势所在。 …

你还在Java8中使用循环语句吗?

转载自 你还在Java8中使用循环语句吗&#xff1f; Java 8中的新功能特性改变了游戏规则。对Java开发者来说这是一个全新的世界&#xff0c;并且是时候去适应它了。 在这篇文章里&#xff0c;我们将会去了解传统循环的一些替代方案。在Java 8的新功能特性中&#xff0c;最棒…

hadoop fs -ls / 出现WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform

Hadoop fs -ls / 出现WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable问题 配置完hadoop启动的时候出现如下警告信息&#xff1a; WARN util.NativeCodeLoader: Unable to load native-…

阅读器关闭时尝试调用Read无效时的解决方法

今天在写asp .netmvc的项目时&#xff0c;发现了个困扰我很久的问题&#xff0c;经过仔细研究终于解决了。 问题如下&#xff1a; 首先来看一下原来有问题的代码&#xff1a; public static SqlDataReader Excutereader(string sql,params SqlParameter [] param) {using (SqlC…

.NET或将引入类型类和扩展

类型类是另外一项正被考虑引入.NET未来版本的特性。在提案“外观和扩展&#xff08;Shapes and Extensions&#xff09;”中&#xff0c;该特性被称为外观&#xff0c;它们将大幅提升.NET泛型的能力。Mads Torgersen这样描述类型类&#xff1a; 接口抽象的是作为类型实例的对象…

成为更优秀的程序员:退后一步看问题

转载自 成为更优秀的程序员&#xff1a;退后一步看问题 一天&#xff0c;在工作中… Bug #3890 来自客户&#xff1a; 有个程序出现了错误&#xff0c;程序提示说“SpeedCalculator::compute()里出现了除零情况”。 请尽快修复&#xff01; 你打开SpeedCalculator.php&#…

JAVA生成随机数

方式一 Random rand new Random();for(int i0; i<10; i) {System.out.println(rand.nextInt(10) 1);}方式二 for (int i 0; i < 50; i) {arr[i](int)(100*Math.random());}

深夜福利, 小试linuxkit

前言 今天小编的朋友圈被DockerCon和linuxkit刷屏了&#xff0c;再不出来写点linuxkit的东东恐怕就要跟不上时代了。小编翻阅了N多的有关linuxkit的文章&#xff0c;发现绝大多数都是英文的讲解&#xff0c;小编本着对读者负责的态度决定先将linuxkit的文章翻译成中文&#xff…

HBase的hbase shell 详解

进入hbase命令行 ./hbase shell 显示hbase中的表 list 创建user表&#xff0c;里面包含info&#xff0c;date两个列族 create user,info,data create user,{NAME > info, VERSIONS > 5},{NAME > data , VERSIONS > 5 } 插入数据 puthbase> put ns1:t1, r1, c1, …

类的无参方法

一、方法&#xff1a; 1.组成&#xff1a;访问修饰符&#xff08;public&#xff09; 返回值类型&#xff08;void,String ,int&#xff09; 方法名&#xff08;采用驼峰命名法&#xff09;(){ //方法体 } eg:public String run(){ //方法体 return “快跑”; } 注意&#xff1…

这些保护Spring Boot 应用的方法,你都用了吗?

转载自 这些保护Spring Boot 应用的方法&#xff0c;你都用了吗&#xff1f; Spring Boot大大简化了Spring应用程序的开发。它的自动配置和启动依赖大大减少了开始一个应用所需的代码和配置量&#xff0c;如果你已经习惯了Spring和大量XML配置&#xff0c;Spring Boot无疑是…

.NET Core 2.0及.NET Standard 2.0

.NET Core 2.0的发布时间&#xff0c;.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布。 .NET Core 2.0正式版本发布时间大约在Q3 2017发布&#xff0c;具体我估计大概在8月份左右。同时一起发布的也就是.NET Standard 2.0。 MilestoneRelease Date.…

路径、形状工具与选区

一、路径工具&#xff1a; 可以转换为选区或者使用涂颜色填充和描边的轮廓。 二、路径工具的功能&#xff1a; 1.绘制平滑线条 2.绘制矢量形状 3.勾选图像轮廓 4.选区互换 三、路径工具的分类&#xff1a; 1.路径选择工具&#xff1a;选择一个闭合的路径或者是一个独立存在的路…

zookeeper 屁民

视频链接&#xff1a;https://pan.baidu.com/s/1b_liTHLVCesMWqoZYokxyA 密码&#xff1a;wjgu 视频在 00:31:00–01:03:00之间 Zookeeper Server最基础的东西是什么呢&#xff1f;我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。 先说Paxos&#x…

Linux清理磁盘挂载点方法(亲测有效)

问题现象 Linux操作系统云服务器根目录空间占用率过高。例如&#xff0c;以图1为例&#xff0c;根目录空间占用率为96%。 根目录空间占用率过高 查询当前系统存在一个约42G 大小的文件access_log&#xff0c;这个文件应该是apache产生的访问日志文件&#xff0c;从日志大小来…