HBase是列族数据库,主要由,表,行键,列族,列标识,值,时间戳 组成,

 

      表       其中HBase 主要底层存储依赖与hdfs,可以在HDFS中看到每个表名都作为一个独立的目录结构

      行       每一行都已行键作为唯一表示,是不可分割的字节数组,在HBase内部主要以行键由低到高存储在表中

      列族       一些列的集合,用户在插入数据的时候必须确定列族,在内部以字符串格式进行存储

      列标识     用以表示指定的列, 存储方式二进制

      值       在HBase 中 以指定的  列族 列表示,行键 来确定唯一的 单元格, 值以二进制方式存储,里面可保存多个版本,最新的数据排在最前面

      时间戳     默认情况下 每一个单元格插入数据时,都会用时间戳进行标识,若时间戳未指定,则插入最新数据,查询时也是如此,其中默认保存3个版本数据

 

      寻址过程

      在上面说了,每一行 都以行键(RowKey)排序, 如果数据量较大,这些数据就会在 行的方向上进行划分

      划分为多个Region,当表中的Region 越来越多时,多到无法存储在一台机器上时, Master主服务器就会把不同的Region分配到不同的Region 的服务器上

      但RowKey相同的Region不会被拆分到 不同Region 服务器上,通常每个Region 服务器会放置10~1000个Region, 当查询数据时,将开始Region定位

      每个Region 都这三个要素组成,Region 所属的表,第一行,最后一行 每个Region 都有个RegionID来标识其唯一性

      Region 标识符表示为 表名+开始行键+RegionID

      Meta表 中存了 Region 与 Region标识符之间的对应关系,可以用scan命令查看Mate表的结构,当数据表特别大时,mate也需要分区,记录Region

         

      Region 定位,

    客户端,通过Zookeeper 获取Meta表分区存储的地址,所需的行键Region信息,然后从Region 服务器上找到所需的数据。一般获取信息后会缓存,使用户不必从ZooKeeper 开始寻址。

 

      读写过程

        Region服务器主要 有  HLog 和Region 块组成,HLog 主要,记录Region 的操作日志,

    Region 对象主要由多个Store 组成 每个store对应当前分区的 一个列族,并且管理一块内存,即MemStroe

    当MemStore 中的数据达到一定条件,会写入StoreFile文件中,每个Store 包含若干StoreFile 文件 StoreFile 对应HDFS中,Hfile文件

   

MemStore    HBase 将数据缓存在其中,持久化到HDFS中完成排序,在顺序写入HDFS中

Store 随着数据量增加 storefile文件数量也在增加,当数量达到一定程度的时候,会合并成一个大的StoreFile文件,随着文件不断合并,Region也会不断变大这样会促使Region进行分裂

      Region 一个父Region 会分裂成两个子 Region  会被Master 分配到相应的Region 服务器上

      Hlog 如果MemStore 上数据丢失 可以从HLog上恢复

     

      写入过程,

1.客户端访问ZookKeeper 从Mate表中得到写入数据对应的Region信息,和相应的Region 服务器

2客户端访问 Region服务器,将数据写入HLog和MemStore中,当MemStore 达到阈值后 将数据写入 StoreFile中,再在HLog中打上一个标记,表示已经写入
3.当多个StoreFile文件达到阈值后 触发Store.compact()将文件进行合并.

 

读取过程

1.客户端访问Zookeeper 从Mate表中读取Region信息对应的服务器

      2.客户端向对应的Region服务器发送读数据的请求,Region接受请求后 从MemStore中查找数据,若没有,再从StoreFile读取,然后再将数据返回给客户端。

本内容总结于 上课老师所讲内容,以及摘录自NoSql数据库原理及应用  有错误之处,大家指正批评。

     

HBase的简单介绍,寻址过程,读写过程的更多相关文章

  1. 提权篇之简单介绍和exp利用过程

    正文开始.... 提权的方法有很多种,因为一开始我入门的时候是看的小迪的网络教程,当然也推荐大家去看小迪的教程,或者直接小迪的实地培训班.这个可没什么利益关系,我认识他,他可不认识我,,但是我是在网上 ...

  2. f2fs源码分析之文件读写过程

    本篇包括三个部分:1)f2fs 文件表示方法: 2)NAT详细介绍:3)f2fs文件读写过程:4) 下面详细阐述f2fs读写的过程. 管理数据位置关键的数据结构是node,node包括三种:inode ...

  3. Hbase结构简单、作法

    Hbase架构简单介绍.实践 版权声明:本文博主原创文章,博客,未经同意不得转载.

  4. hbase架构和读写过程

    转载自:https://www.cnblogs.com/itboys/p/7603634.html 在HBase读写时,相同Cell(RowKey/ColumnFamily/Column相同)并不保证 ...

  5. ARM过程调用标准---APCS简单介绍

    介绍 APCS,ARM 过程调用标准(ARM Procedure Call Standard),提供了紧凑的编写例程的一种机制,定义的例程能够与其它例程交织在一起.最显著的一点是对这些例程来自哪里没有 ...

  6. HBase 文件读写过程描述

    HBase 数据读写过程描述 我们熟悉的在 Hadoop 使用的文件格式有许多种,例如: Avro:用于 HDFS 数据序序列化与 Parquet:常见于 Hive 数据文件保存在 HDFS中 HFi ...

  7. 计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动

    原文地址:4.计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动 计算机的启动

  8. hbase的读写过程

    hbase的读写过程: hbase的架构: Hbase真实数据hbase真实数据存储在hdfs上,通过配置文件的hbase.rootdir属性可知,文件在/user/hbase/下hdfs dfs - ...

  9. Phoenix(sql on hbase)简单介绍

    Phoenix(sql on hbase)简单介绍 介绍: Phoenix is a SQL skin over HBase delivered as a client-embedded JDBC d ...

随机推荐

  1. mysql慢查询日志查找与分析

    mysql下执行SHOW VARIABLES LIKE '%slow_query_log%' 上图我这是本地的mysql,慢查询没开. slow_query_log :ON和OFF分别表示慢查询有没有 ...

  2. Shell 脚本语法

    条件测试:test  和  [ 命令 test 或 [ 可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C ...

  3. Luogu [P3622] [APIO2007]动物园

    题目链接 比较费脑子的一道题 先说题目核心思想 : 状压dp 环的处理我们先不管. 我们设 dp[j][s] 表示 到达动物 j 且 [ j , j+5) 这五个动物状态为s时 最多能使多少小朋友开心 ...

  4. windows游戏编程X86 (内存)寄存器相关的基本概念

    本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22446971 作者:jadeshu   邮箱: jades ...

  5. Babel7知识梳理

    Babel7 知识梳理 对 Babel 的配置项的作用不那么了解,是否会影响日常开发呢?老实说,大多情况下没有特别大的影响(毕竟有搜索引擎). 不过呢,还是想更进一步了解下,于是最近认真阅读了 Bab ...

  6. 基于docker的sqli-labs搭建

    一键代码: curl https://files-cdn.cnblogs.com/files/kagari/sqli-labs.sh|bash https://files-cdn.cnblogs.co ...

  7. zookeeper源码 — 三、集群启动—leader、follower同步

    zookeeper集群启动的时候,首先读取配置,接着开始选举,选举完成以后,每个server根据选举的结果设置自己的角色,角色设置完成后leader需要和所有的follower同步.上面一篇介绍了le ...

  8. Windows下MongoDB的安装过程及基本配置

    首先当然是到官网下载 MongoDB 了,点击进入后会看到下载页面,如下图所示: 安装有2种方式: 一种是通过直接点击下载的安装文件进行安装: 另一种是通过命令提示符来安装,下面我将直接通过第一种方式 ...

  9. chrome console控制台引入jquery库

    var jqueryJs=document.createElement('script');jqueryJs.setAttribute("type","text/Java ...

  10. [Phoenix] Mix 命令

    mix phx.gen.html 命令生成模板: # 其中 name 和 age 是 schema 字段名称,后面跟的是类型 # 下面这样的写法,会生成 controller 和 service 层的 ...