HBASE学习笔记-初步印象
HBASE概念:
HBASE是一个分布式架构的数据库,通过对数据进行多层的分块打散储存。从而改写传统数据库的储存能力和读取速度。
HBASE的集群服务器:
HBASE的集群主要分为Zookeeper集群,Master集群,RegionSever集群。
Zookeeper集群:储存Table的Region地址,管理Master和RegionSever服务器间的操作。
Master集群:进行建表,删表工作和分配Region(管理负载均衡,Split时,重新分配Region)
RegionSever集群:储存真正数据的地方
数据储存模型:
分块储存概念:
1.Hbase的Table会按行进行Region的数据块划分。
2.Region数据块会被分配给集群的各个(Regionsever)机器上面去。
3.每个Regin块会再进行Store块划分,每个Store块拥有一个MenStore和0至多个StoreFile
Region块的信息储存:
HBase中有两张记录Region信息所在位置的特殊的Table,-ROOT-和.META.
.META.:记录了各个用户表的Region信息,.META.本身可以有多个regoin,放在RegionSever中
-ROOT-:记录了.META.表的Region信息,-ROOT-本身只有一个region,放在RegionSever中
Zookeeper中记录了-ROOT-表的location
Store块中储存的信息:
RowKey:是Byte array,是表中每条记录的“主键”,方便快速查找,Rowkey的设计非常重要。
Column Family:列族,拥有一个名称(string),包含一个或者多个相关列
Column:属于某一个columnfamily,familyName:columnName,每条记录可动态添加
Version Number:类型为Long,默认值是系统时间戳,可由用户自定义
Value(Cell):Byte array
数据流程:
创建、修改表:
1.Client向Zookeeper发送创建表请求,Zookeeper记录日志后传递给HMaster。
2.HMaster返回可以写入RegionSever给Zookeeper
3.Zookeeper把创建的表和Regionsever的关系通过ROOT表和META表记录下来
4.以后进行表操作则不用经过HMaster,直接从Zookeeper中获取对应的RegionSever地址
操作表:
1.Client向Zookeeper发送操作数据请求
2.Zookeeper检查缓存中是否有目标表与RegionSever的关系
3.从Zookeeper中抽取ROOT表和META表读取目标表与RegionSever的关系
4.到对应的RegionSever中进行Hlog日志记录并找到对应的StoreFile进行数据操作
5.把最后的Hlog和StoreFile储存到HDFS中
参考资料:
http://www.cnblogs.com/JemBai/archive/2012/07/21/2602432.html
http://www.uml.org.cn/sjjm/201212141.asp#6
http://www.csdn.net/article/2014-02-17/2818431-HDFS+MapReduce+Hbase
http://blog.csdn.net/woshiwanxin102213/article/details/17584043
http://www.cnblogs.com/hark0623/p/5571193.html
http://tangay.iteye.com/blog/736871
HBASE学习笔记-初步印象的更多相关文章
- HBase学习笔记之HBase的安装和配置
HBase学习笔记之HBase的安装和配置 我是为了调研和验证hbase的bulkload功能,才安装hbase,学习hbase的.为了快速的验证bulkload功能,我安装了一个节点的hadoop集 ...
- HBASE学习笔记(四)
这两天把要前几天的知识点回顾一下,接下来我会用自己对知识点的理解来写一些东西 一.知识点回顾 1.hbase集群启动:$>start-hbase.sh ===>hbase-daemon.s ...
- HBase学习笔记之BulkLoad
HBase学习之BulkLoad bulkload的学习以后再写文章. 参考资料: 1.https://blog.csdn.net/shixiaoguo90/article/details/78038 ...
- HBase学习笔记之HBase原理和Shell使用
HBase学习指南之HBase原理和Shell使用 参考资料: 1.https://www.cnblogs.com/nexiyi/p/hbase_shell.html,hbase shell
- HBase学习笔记(四)—— 架构模型
在逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列. 但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional m ...
- Hbase学习笔记01
最近做项目接触到了HDFS.mapreduce以及Hbase,有了实战机会,今天打算将这些知识好好总结下,以备不时之需.首先从Hbase开始吧. Hbase是建立在HDFS上的分布式数据库,下图是Hb ...
- HBase学习笔记-高级(一)
HBase1. hbase.id记录了集群的唯一标识:hbase.version记录了文件格式的版本号2. split和.corrupt目录在日志分裂过程中使用,以便保存一些中间结果和损坏的日志在表目 ...
- HBASE学习笔记--API
HBaseConfiguration HBaseConfiguration是每一个hbase client都会使用到的对象,它代表的是HBase配置信息.它有两种构造方式: public HBaseC ...
- Hbase—学习笔记(一)
此文的目的: 1.重点理解Hbase的整体工作机制 2.熟悉编程api,能够用来写程序 1. 什么是HBASE 1.1. 概念特性 HBASE是一个数据库----可以提供数据的实时随机读写 HB ...
随机推荐
- qq客服代码
http://shang.qq.com/v3/widget.html <a target="_blank" href="http://wpa.qq.com/msgr ...
- iOS开发_数据存储方式
对于数据持久化的问题,博主并不准备在博文内放很多的代码进行更深一步解释,只是简单的介绍一下四种数据持久化,如有时间,会另外针对各个数据持久化的方法进行更进一步的阐述. 直接进入主题: 〈1.NSUse ...
- Java parseInt()方法
1.Java parseInt()方法 使用此方法得到的原始数据类型的一个特定的字符串. parseXxx()是一个静态方法,可以有一个参数或两个. java parseInt() 语法: sta ...
- 【Python①】python简介,安装以及配置
今天开始学习python,将一些心得和知识点记录下来,如有疏漏或表达问题,欢迎指正.后面所有代码均为Python 3.3.2版本(运行环境:Windows7)编写. 附:2014年8月TIOBE编程语 ...
- .NET程序的简单编译原理
1.不管是什么程序,最终的执行官是CPU,而CPU只认识1和0的机器码. 2.我们现在写的一般是高级语言写的程序.CPU是不认识我们用高级语言写的源代码的,那应该怎么办才能让CPU执行我们写好的程序尼 ...
- ASP.NET MVC自定义ActionResult实现文件压缩
有时候需要将单个或多个文件进行压缩打包后在进行下载,这里我自定义了一个ActionResult,方便进行文件下载 using System; using System.Collections; usi ...
- 关于Thinkphp Upload类
$this->uploads($picurl); public function uploads($picurl) { $config = array( 'maxSize' => 3145 ...
- 移动互联网公司如何将BPM流程管理变身移动化?
背景介绍 OPPO是广东欧珀移动通信有限公司的旗下品牌,成立于2004年,是一家全球性的智能终端和移动互联网公司,致力于为客户提供最先进和最精致的智能手机.高端影音设备和移动互联网产品与服务,业务覆盖 ...
- 黑马程序员——C语言基础 变量类型 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...
- 在sqlserver中做fibonacci(斐波那契)规律运算
--利用sqlserver来运算斐波那契规律 --利用事物与存储过程 declare @number intdeclare @A intdeclare @B intdeclare @C int set ...