HBase 的存储结构
HBase 的存储结构
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 的存储结构的更多相关文章
- HBase 数据存储结构
在HBase中, 从逻辑上来讲数据大概就长这样: 单从图中的逻辑模型来看, HBase 和 MySQL 的区别就是: 将不同的列归属与同一个列族下 支持多版本数据 这看着感觉也没有那么太大的区别呀, ...
- hbase操作(shell 命令,如建表,清空表,增删改查)以及 hbase表存储结构和原理
两篇讲的不错文章 http://www.cnblogs.com/nexiyi/p/hbase_shell.html http://blog.csdn.net/u010967382/article/de ...
- hbase 存储结构和原理
HBase的表结构 建表时要指定的是:表名.列族 建表语句 create 'user_info', 'base_info', 'ext_info' 意思是新建一个表,名称是user_info,包含两个 ...
- HBase介绍(2)---数据存储结构
在本文中的HBase术语:基于列:column-oriented行:row列组:column families列:column单元:cell 理解HBase(一个开源的Google的BigTable实 ...
- HBase 的表结构
HBase 的表结构 2016-10-13 杜亦舒 HBase 是一个NoSQL数据库,用于处理海量数据,可以支持10亿行百万列的大表,下面就了解一下数据是如何存放在HBase表中的 关系型数据库的表 ...
- 从NSM到Parquet:存储结构的衍化
http://blog.csdn.net/dc_726/article/details/41777661 为了优化MapReduce及MR之前的各种工具的性能,在Hadoop内建的数据存储格式外,又涌 ...
- Hbase的存储
Hbase在生态系统中的位置 Hbase存储的逻辑视图 Hbase的存储格式 Hbase写数据流程 Hbase快速响应数据 Hbase在生态系统中的位置 HBase位于结构化存储层,Hadoop HD ...
- HBase海量数据存储
1.简介 HBase是一个基于HDFS的.分布式的.面向列的非关系型数据库. HBase的特点 1.海量数据存储,HBase表中的数据能够容纳上百亿行*上百万列. 2.面向列的存储,数据在表中是按照列 ...
- HBase底层存储原理
HBase底层存储原理——我靠,和cassandra本质上没有区别啊!都是kv 列存储,只是一个是p2p另一个是集中式而已! 首先HBase不同于一般的关系数据库, 它是一个适合于非结构化数据存储的数 ...
随机推荐
- DataRow数组转换DataTable
public DataTable ToDataTable(DataRow[] rows) { if (rows == null || rows.Length == 0) return null; Da ...
- 测试-Animator的“当前剪辑CurrentAnimatorStateInfo”
左边是Transport到Idle,右边是完全到Idle 当进入过渡时,事实上Transport状态并未结束,通过下面打印出来的hash可以看出还是Transport的状态 过渡结束才正式变为Idle ...
- Entity Framework 第七篇 简化排序
上篇介绍了EF的分页实现,分页的时候会用到排序,但是使用起来表达式写的似乎很繁琐 , ); 如果直接使用排序字符串,不更直观简便么? respository.GetPaged<S_Users&g ...
- Git合并开发代码分支到测试代码分支
——转载请注明出自天外归云的博客园 用TortoiseGit下载代码到本地 首先需要在本机安装好TortoiseGit.然后在随便哪个路径下比如D盘,右键“Git Clone”: 然后URL处选择项目 ...
- repo 官方教程
参考 http://android.git.kernel.org/repo http://source.android.com/source/downloading.html http://sourc ...
- SQLServer使用表值参数,高性能批量插入数据
记得前段时间帮同事写了个解析账号并入库的小工具,来批量导入账号信息,账号量相当大,程序每读取一条记录便执行一次insert来插入数据,整整跑了一下午才把账号全部入库. 今天又接到同事类似的需求,不过这 ...
- Django忘记管理员账号和密码的解决办法
看着Django的教程学习搭建网站,结果忘记第一次创建的账号和密码了.结果搭建成功以后,一直无法登陆到管理页面,进行不下去了. 如图所示: 在网上找了很多的方法都不行,最后使用新建一个superuse ...
- VBA中方法的函数式调用和过程式调用的差别
因见到有人求助批量设置工作簿中的超链接,尝试写了一段代码: Sub AddHyperlinks() Dim strName As String, source As String, target As ...
- Beaglebone Black - 准备
首先要玩 BBB,你需要买一台 BBB,淘宝 Element14 Beaglebone Black,我购入价 RMB 310,带数据线,没电源适配器的.Seeedstudio 有台叫 Beaglebo ...
- Servlet技术
Java Applet和Java Servlet都有一个共同特点: 它们都不是独立的应用程序,都没有main( )方法: 它们都不是由用户或者程序员直接调用,而是生存在容器中,由容器管理,Applet ...