HBase架构设计
一.Client
包含访问HBase的接口并维护cache来加快对HBase的访问。
二.Zookeeper
1.保证任何时候,集群中只有一个master。
2.存储所有Region的寻址入口。
3.实时监控Region server的上线和下线信息,并实时通知Master。
4.存储HBase的schema和table元数据。
三.Master
1.为Region server分配region。
2.负责Region server的负载均衡。
3.发现失效的Region server并重新分配其上的region。
4.管理用户对table的增删改操作。
四.Region Server
1.Region server维护region,处理对这些region的I/O请求。
2.Region server负责切分在运行过程中变得过大的region。
五.Region
1.HBase自动把表水平划分成多个区域【region】,每个region会保存一个表里面某段连续的数据。
2.每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阈值大的时候,region就会等分为两个新的region【裂变】。
3.当table的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Region server上。
六.Memstore与storefile
1.一个region由多个store组成,一个store对应一个cf【列族】。
2.store包括位于内存中的memstore和位于磁盘的storefile,写操作先写入memstore,当memstore中的数据达到某个阈值,hregionserver会启动flashcache进程写入storefile,每次写入形成一个单独的storefile。
3.当storefile文件的数量增长到一定阈值后,系统会进行合并【minor compaction:相邻两个小文件之间合并,不影响HBase提供服务。major compaction: 在合并过程中会进行版本合并和删除操作,影响HBase提供服务】,形成更大的storefile。
4.当一个region所有storefile的大小和数量超过一定阈值后,会把当前的region分割为两个,并由hmaster随机分配到相应的regionserver服务器,实现负载均衡。
5.客户端检索数据,先在memstore中找,找不到再去storefile中找。
备注:
1.HRegion是HBase中分布式存储和负载均衡的最小单位。HRegion可以分布在不同的HRegion server上。
2.HRegion由一个或多个store组成,每个store保存一个列族。
3.每个store又有一个memStore和0到多个storeFile组成。

HBase架构设计的更多相关文章
- Solr与HBase架构设计
摘要:本篇是本人在做一个大数据项目时,对于系统架构的一点总结,如何在保证存储量的情况下,又能保证数据的检索速度. 前提: Solr.SolrCloud提供了一整套的数据检索方案,HBase提 ...
- 【大数据技术】HBase与Solr系统架构设计
如何在保证存储量的情况下,又能保证数据的检索速度. HBase提供了完善的海量数据存储机制,Solr.SolrCloud提供了一整套的数据检索方案. 使用HBase搭建结构数据存储云,用来存储海量数据 ...
- HBase的架构设计为什么这么厉害!
老刘是一名即将找工作的研二学生,写博客一方面是复习总结大数据开发的知识点,一方面是希望能够帮助和自己一样自学编程的伙伴.由于老刘是自学大数据开发,博客中肯定会存在一些不足,还希望大家能够批评指正,让我 ...
- 【转】Flume(NG)架构设计要点及配置实践
Flume(NG)架构设计要点及配置实践 Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中.由原来的Fl ...
- HBASE架构解析(二)
http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell( ...
- HBASE架构解析(一)
http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官 ...
- 两年内从零到每月十亿 PV 的发展来谈 Pinterest 的架构设计(转)
原文:Scaling Pinterest - From 0 To 10s Of Billions Of Page Views A Month In Two Years 译文:两年内从零到每月十亿 PV ...
- MySQL性能调优与架构设计-架构篇
架构篇(1) 读书笔记 1.Scale(扩展):从数据库来看,就是让数据库能够提供更强的服务能力 ScaleOut: 是通过增加处理节点的方式来提高整体处理能力 ScaleUp: 是通过增加当前处理节 ...
- 基于Hadoop的大数据平台实施记——整体架构设计[转]
http://blog.csdn.net/jacktan/article/details/9200979 大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底 ...
随机推荐
- ITP项目:一期版本分享
摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 写代码和练书法一样,要坚持.昨晚的提笔留下. 一.项目小结: 项目经历了 ...
- DWR第四篇之对象传参
1. 本示例在第一篇架构基础上添加代码 2. 首先,在dwr.xml文件里添加对象转换器 3. 编写Person实体类 package com.skyer.vo; import java.util.A ...
- 【EF6学习笔记】(六)创建复杂的数据模型
本篇原文地址:Creating a More Complex Data Model 本篇讲的比较碎,很多内容本人认为并不是EF的内容,既然原文讲了,那就按照原文来学习吧... 第1步:通过属性来定制化 ...
- 使用Laya引擎开发微信小游戏(下)
本文由云+社区发表 6. 动画 6.1 创建伞兵对象 在src目录下创建一个新目录role,用来存放游戏中角色. 在role里创建一个伞兵Soldier.ts对象文件. module role{ ex ...
- 关于kubernetes使用私有仓库一点说明
一.概述 关于kubernetes使用私有docker image registry的一些说明: 1.对于自己构建的项目镜像或一些不想暴露到外网的image需要使用自建的私有仓库,一般有两种选择:d ...
- 移植 Qt 至 tiny210 详细过程
实验所需资源: tiny210(cortex-a8) QT 版本:5.6.2 PC 环境:UBUNTU tslib:tslib-1.4 交叉工具链:4.5.1 开发板已装载好 Linux 编译 tsl ...
- Redis基础认识及常用命令使用(一)--技术流ken
Redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集 ...
- IntelliJ IDEA快捷键与使用小技巧
IntelliJ Idea 常用快捷键列表 修改方法如下: 点击 文件菜单(File) –> 点击 设置(Settings… Ctrl+Alt+S), –> 打开设置对话框. 在左侧的导航 ...
- iOS SQLite详解
这周比较忙,前几天都加班到11点左右,基本都是到家都是12点左右(稍稍的抱怨一下,免费加班,何为免费,就是任何补偿都没有,例如调休,加班薪,餐补等各项福利,是一点都没有呀)因为App要上线了!App上 ...
- 第一册:lesson seventy seven。
原文:terrible toothache. Good morning Mr.Croft. Good morning nurse. I want to see the dentist,please. ...