HBase原理和架构
HBase是什么

HBase在生态体系中的位置

HBase vs HDFS

HBase表的特点

HBase是真正的分布式存储,存储级别达到TB级别,而才传统数据库就不是真正的分布式了,传统数据库在底层,虽然的存储能力很强,一旦达到上亿条数据。读取性能下降得很快。
传统数据库按行存储,如果列过多的话,一行数据会非常大,HBase按列簇存储,每个列簇都存储一个文件,如果只读取某一些字段的话,只需读取对应的文件就可以了,其他的不用扫描,节省了IO。
HBase的存储每一行的内容可以不同,空出来的列不占用空间。
多版本,怎么理解呢,就比如说相同id的行重新插入数据不会覆盖掉,而是按照插入的时间戳分类。
行存储和列存储

02 HBase数据模型

HBase逻辑视图

Rowkey和Column Family

HBase数据模型


HBase支持的操作

03 HBase物理模型

传统数据库和HBase的存储的不同



物理存储

Table vs Region



04 HBase系统架构
架构图

HBase基本组件

HBase工作流程

Hbase Write-Ahead-Log(预先写日志)

Regionserver结构

HBase Compact && Split

HLog Replay

Hfile存储格式

Hfile存储格式(续)

Keyvalue格式

Hlog存储格式

HLog存储格式(续)

HBase高可用


HBase容错性

Region定位

先访问zookeeper,找到root表的位置,root表记录了meta表的位置,在meta表里面查找对应的rowkey查找所在的region,并获取用户region的位置
-ROOT-和.META.表结构

如果是root表,表名就是.meta。如果是meta表,表名就是用户的id 订单等等。
-ROOT-表和.META


Hbase 读流程

Client客户端先找到zookeeper拿到meta表,meta表根据rowkey拿到相应的region信息,找到对应的regionsever

1.memstore是写缓存,blockcache是读缓存。
2.读数据的时候先到写缓存memstore去读,这样能提高读的效率,当memstore没有了,才到读缓存blockcache读数据。如果上面两个缓存(属于内存)都没有的情况下,就到磁盘去读。
3.在读到磁盘的时候去查找相应的数据,在没找到之前把前面的hfile放到blockcache读缓存里面,因为blockcache的空间也是有限的,如果blockcache读满了还没有找到需要查询的数据,blockcache就会淘汰一部分数据。
HBase put写流程

Hbase VS 关系型数据库

Hbase VS Hive


HBase原理和架构的更多相关文章
- HBase的基本架构及其原理介绍
1.概述:最近,有一些工程师问我有关HBase的基本架构的问题,其实这个问题仅仅说架构是非常简单,但是需要理解.在这里,我觉得可以用HDFS的架构作为借鉴.(其实像Hadoop生态系统中的大部分组建的 ...
- Zookeeper概论(对zookeeper的概论、原理、架构等的理解)
Zookeeper概论(对zookeeper的概论.原理.架构等的理解) 一.概论 Zookeeper是一个分布式的.开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是h ...
- 【转】HBase原理和设计
简介 HBase —— Hadoop Database的简称,Google BigTable的另一种开源实现方式,从问世之初,就为了解决用大量廉价的机器高速存取海量数据.实现数据分布式存储提供可靠的方 ...
- Hbase原理
Hbase原理 概述 HBase是一个构建在HDFS上的分布式列存储系统:HBase是基于Google BigTable模型开发的,典型的key/value系统:HBase是Apache Hadoop ...
- HBase原理和设计
转载 2016年1月10日:http://www.sysdb.cn/index.php/2016/01/10/hbase_principle/ 简介 架构 数据组织 原理 RS定位 region写入 ...
- HBase原理、设计与优化实践
转自:http://www.open-open.com/lib/view/open1449891885004.html 1.HBase 简介 HBase —— Hadoop Database的简称,G ...
- 大数据技术之_11_HBase学习_01_HBase 简介+HBase 安装+HBase Shell 操作+HBase 数据结构+HBase 原理
第1章 HBase 简介1.1 什么是 HBase1.2 HBase 特点1.3 HBase 架构1.3 HBase 中的角色1.3.1 HMaster1.3.2 RegionServer1.3.3 ...
- HBase之一:HBase原理和设计
一.简介 HBase —— Hadoop Database的简称,Google BigTable的另一种开源实现方式,从问世之初,就为了解决用大量廉价的机器高速存取海量数据.实现数据分布式存储提供可靠 ...
- 1、Hbase原理分析
一.Hbase介绍 1.1.对Hbase的认识 HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随机读写操作,HBase正是为此而出现. HBase参考 Google 的 Bigtable ...
随机推荐
- MySQL使用游标
MySQL检所操作返回一组称为结果集的行,游标是一个存储在MySQL服务器上的数据库查询,它不是一条select语句,而是被该语句所检索出来的结果集.只能用于存出过程. 声明(定义)游标,这个过程没有 ...
- 用react编写一个hello world
我要分享的是用react搭建一个简单的hello world, 一个小demo, 大神请略过 首先看一下目录结构 创建一个目录, 用于存放demo mkdir reactHello cd reactH ...
- opengl 几何着色器
绘制4条线段 #define GLEW_STATIC #include <GL/glew.h> #include <GLFW/glfw3.h> #include "S ...
- 实践中总结出来对heapq的一点理解
关于heapq(优先级队列算法): heapq.heapify(x):个人理解就是以线性时间(O(n)时间)将一个list转换经过堆排序之后在放入list中,而这种堆特点是根节点必须小于左右节点.曾听 ...
- 在Hanlp词典手动添加未登录词的方式介绍
在使用Hanlp词典进行分词的时候,会出现分词不准的情况,原因是内置词典中并没有收录当前这个词,也就是我们所说的未登录词,只要把这个词加入到内置词典中就可以解决类似问题,如何操作呢,下面我们来看一下: ...
- 一些常用的排序算法(C版)
1. 直接插入排序(稳定排序) 简单的说就是将序列分为有序序列和无序序列.每一趟排序都是将无序序列的第一个元素插入有序序列中.R[1… i-1] <- R[i…n] , 每次取R[i]插入到R[ ...
- .net(C#)常见面试题
1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成 ...
- 并查集(Union-Find)
常见问题: 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的.最后要解决的是整幅图的连通性问题.比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共 ...
- C#实现根据日期计算星期
/// <summary> /// 根据日期返回 星期(返回结果为英文) /// </summary> /// <param name="date"& ...
- WPF Demo18 路由事件
using System.Windows; namespace 路由事件2 { public class Student { ////声明并定义路由事件 //public static readonl ...