HBase 的存储结构

2016-10-17 杜亦舒

HBase 中的表常常是超级大表,这么大的表,在 HBase 中是如何存储的呢?

HBase 会对表按行进行切分,划分为多个区域块儿,每个块儿名为 HRegion



HBase 是集群结构,会把这些块儿分散存储到多个服务器中,每个服务器名为HRegionServer



服务器多了,就需要一个管理者 HMaster,负责 HRegion 的分配、HRegionServer 负载均衡的处理 等事务



当某个 HRegion 的大小达到阈值后,便会被分割开来,新的 HRegion 也会由 HMaster 进行分配,放置到合适的 HRegionServer 中

HRegion 是 HBase 中分布式存储的最小单元,但并不是存储的最小单元

HRegion 内部会按照列族进行切分,分为多个 Store,每个 Store 保存一个列族,所以 HRegion 由一个或者多个 Store 组成



每个 Strore 又由一个 MemStore 和 N个 StoreFile 组成

MemStore 是内存存储单元,当内存中数据达到阈值后,写入 StoreFile,StoreFile 以 HFile 格式保存



HBase 数据的物理存储是基于 Hadoop 的分布式存储的



这样,综合起来便形成了 HBase 的整体架构图

HBase 的存储结构的更多相关文章

  1. HBase 数据存储结构

    在HBase中, 从逻辑上来讲数据大概就长这样: 单从图中的逻辑模型来看, HBase 和 MySQL 的区别就是: 将不同的列归属与同一个列族下 支持多版本数据 这看着感觉也没有那么太大的区别呀, ...

  2. hbase操作(shell 命令,如建表,清空表,增删改查)以及 hbase表存储结构和原理

    两篇讲的不错文章 http://www.cnblogs.com/nexiyi/p/hbase_shell.html http://blog.csdn.net/u010967382/article/de ...

  3. hbase 存储结构和原理

    HBase的表结构 建表时要指定的是:表名.列族 建表语句 create 'user_info', 'base_info', 'ext_info' 意思是新建一个表,名称是user_info,包含两个 ...

  4. HBase介绍(2)---数据存储结构

    在本文中的HBase术语:基于列:column-oriented行:row列组:column families列:column单元:cell 理解HBase(一个开源的Google的BigTable实 ...

  5. HBase 的表结构

    HBase 的表结构 2016-10-13 杜亦舒 HBase 是一个NoSQL数据库,用于处理海量数据,可以支持10亿行百万列的大表,下面就了解一下数据是如何存放在HBase表中的 关系型数据库的表 ...

  6. 从NSM到Parquet:存储结构的衍化

    http://blog.csdn.net/dc_726/article/details/41777661 为了优化MapReduce及MR之前的各种工具的性能,在Hadoop内建的数据存储格式外,又涌 ...

  7. Hbase的存储

    Hbase在生态系统中的位置 Hbase存储的逻辑视图 Hbase的存储格式 Hbase写数据流程 Hbase快速响应数据 Hbase在生态系统中的位置 HBase位于结构化存储层,Hadoop HD ...

  8. HBase海量数据存储

    1.简介 HBase是一个基于HDFS的.分布式的.面向列的非关系型数据库. HBase的特点 1.海量数据存储,HBase表中的数据能够容纳上百亿行*上百万列. 2.面向列的存储,数据在表中是按照列 ...

  9. HBase底层存储原理

    HBase底层存储原理——我靠,和cassandra本质上没有区别啊!都是kv 列存储,只是一个是p2p另一个是集中式而已! 首先HBase不同于一般的关系数据库, 它是一个适合于非结构化数据存储的数 ...

随机推荐

  1. python-day6 常见算法 python内置模块

    1.冒泡排序 需求:请按照从小到大对列表 [13, 22, 6, 99, 11] 进行排序 原理:相邻两个值进行比较,将较大的值放在右侧,依次比较! li=[39,11,43,88,765,9]for ...

  2. 第十四章:高级I/O

    14.1:引言 本章内容包括非阻塞I/O.记录锁.系统V流机制.I/O多路转接(select和poll函数).readv和writev函数以及存储映射I/O(mmap),这些都称为高级I/O. 14. ...

  3. interrupt ,interrupted 和 isInterrupted

    1.interrupt  interrupt方法用于中断线程.调用该方法的线程的状态为将被置为"中断"状态. 注意:线程中断仅仅是置线程的中断状态位,不会停止线程.需要用户自己去监 ...

  4. hdu 1205 从整体考虑

    吃糖果 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submiss ...

  5. JAVA中线程池启动定时任务

    /** * 用线程池启动定时器 * @param args */ public static void main(String[] args) { //10秒启动 Executors.newSched ...

  6. java-pfx文件转换成16进制内容

    public static void main(String[] args) throws Exception { String path = "D://111.pfx"; Inp ...

  7. JLINK使用教程详解,以及与JTAG区别

    对于一个新手来说,一切都不容易. 而从头学起也是一件非常美好的事. 观看     调试ARM,要遵循ARM的调试接口协议,JTAG就是其中的一种.当仿真时,IAR.KEIL.ADS等都有一个公共的调试 ...

  8. SQL调用存储过程

    --1调用存储过程exec 存储过程名 参数--2当表使用select a.*,b.* from tb b inner join (select * from openrowset('sqloledb ...

  9. C#打开指定路径文件对话框

    private string OpenFileDlog(string DeafultDir) { OpenFileDialog Ofd = new OpenFileDialog(); Ofd.AddE ...

  10. CodeForces 527B Error Correct System

    Error Correct System Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I6 ...