对hbase的学习
HBase,是Hadoop DataBase. 面向列的分布式数据库, 思想来源于Google的BigTable思想,它的目标是在廉价硬件构成的集群上管理超大规模的稀疏表。

Hbase的物理结构
HBase是建立在HDFS上的面上列的数据库。 由于HDFS不支持update操作,只支持delete和insert操作。所以,Hbase对表的操作也不支持update,同时也不支持delete, 只有一个insert的操作,所有的操作都是insert操作。当删除时,就是向表里面插入一行数据,并加上删除标记。update时,就向表里插入一条数据,根据时间戳来区别。
Hbase的物理存储
根据上图显示,和HDFS相似, HDFS使用一个namenode节点管理datanode节点,datanode有很多数据块组成。Hbase也是采用了一个HMater管理多个HRegionServer(相当于HDFS的datanode),HRegionServer是一个物理服务器,负责管理该服务器上的Region,相应客户端的读写请求,划分区域和报告本服务器上Region的信息。
Hbase是一个面向列族的数据库,在创建表的时候,就要确定列族,这点和关系型数据库比较类似,但是列可以在插入的时候确定,这点和nosql数据库比较类似,所以Hbase是一个介于关系数据库和非关系数据库之间的数据库。
HBase的各个组件的功能。
HBase有个组件, Client, Z00Keeper, HMaster, RegionServer, Region
HBase也是采用了master/slaver架构, 其中master是HMaster, slaver是RegionServer, 它的功能是管理和全新安装RegionServer, 对RegionServer进行负载均衡,将region分配给已经注册的regionserver,恢复RegionServer的故障等。 RegionServer负载与client进行读写操作以及零个或者多个region的管理,region的切分,并通知master用子区域代替父区域。 client端读写操作获得RegionServer的位置是通过-root, meta两个表中的数据获得的,靠这两个表中的数据来控制位置信息。 这是采用了BitTable的三层索引结构。并且Client端会cache这两个表中的数据,以增加速度。
一个Region多个列族, 每个列族一个memstore, 一个blockcache, 多个HFile.一个region一个HLog文件。列族之间是相互隔离的。
ZooKeeper中有很多信息,包括有哪些节点,每个节点什么角色,regionServer的运行状态, 以及root表的位置,以及master锁的维护等,如果区域的分配过程中有服务器崩溃,就通过ZooKeeper来进行协调,ZooKeeper的状态可以帮助恢复。
HBase的存储结构 HBase----Table----Region----ColumnFamily-----StoreFile
对hbase的学习的更多相关文章
- Hbase深入学习(六) Java操作HBase
Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...
- Hbase深入学习(二) 安装hbase
Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...
- Hbase深入学习(一) 什么是hbase
Hbase深入学习(一) 什么是hbase 一.hbase是什么? 首先hbase是一个在Hadoop的HDFS分布式存储系统上介于映射(key/value)的nosql的分布式数据库:它通 ...
- Hadoop学习---Hadoop的HBase的学习
Hbase Hbase的特点: Hbase是bigtable的开源的仿制版本 建立在HDFS之上 可靠性,靠性能 大:一个表可以有上亿行,上百万列 面向列:面向列(族)的存储和权限控制,列(族)独立检 ...
- HBase框架学习之路
1 背景知识 1.1 解决问题 解决HDFS不支持单条记录的快速查找和更新的问题. 1.2 适用情况 存在亿万条记录的数据库,只有千万或者百万条记录使用RDBMS更加合适 确保你的应用不需要使用RDB ...
- Hadoop学习笔记—15.HBase框架学习(基础知识篇)
HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase是一个开源的,分布式的,多版本的,面向列的存储模型,它存储的是 ...
- Hadoop学习笔记—15.HBase框架学习(基础实践篇)
一.HBase的安装配置 1.1 伪分布模式安装 伪分布模式安装即在一台计算机上部署HBase的各个角色,HMaster.HRegionServer以及ZooKeeper都在一台计算机上来模拟. 首先 ...
- 【HBase】学习笔记
HBASE 1 简介 1.1 官网 1.1.1 http://hbase.apache.org/ 1.1.2 Apache HBase™ is the Hadoop database, a distr ...
- hbase shell学习-2
一个学生成绩表的例子来演示hbase的用法. name grade course math english Tom 5 97 87 Jim 4 89 80 表的创建:语法:create '表名称',' ...
随机推荐
- Java虚拟机学习(2):垃圾收集算法
跟踪收集器 跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC Roots的对象做为起点,从这些节点向下开始进行搜索所有的引用链,当一个对象到GC Roots 没有 ...
- (2) 深入理解Java Class文件格式(一)
好文转载:http://blog.csdn.net/zhangjg_blog/article/details/21486985 Class文件在Java体系结构中的位置和作用 在上一篇博客中, 大致讲 ...
- Editplus配置VC++(1) 及相关注意事项
下篇文章:Editplus配置VC++(2) 与/d1reportSingleClassLayout 原本用的是VC++2010 现在换成了Visual Studio 2013,editplus相关配 ...
- Codeforces Round #356 (Div. 2)
A. Bear and Five Cards time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- C library function - freopen()
Description The C library function FILE *freopen(const char *filename, const char *mode, FILE *strea ...
- java使用split切割字符串的时候,注意转义字符
今天在做项目的时候发现一个奇怪的问题 File file = new File("d:\\a.txt"); BufferedReader br = new BufferedRead ...
- Java中ExecutorService和CompletionService区别
我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用. 之前我一直习惯自 ...
- 程序设计入门——C语言 第2周编程练习 1时间换算(5分)
1 时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果 ...
- 程序设计入门—Java语言 第五周编程题 2井字棋(5分)
2 井字棋(5分) 题目内容: 嗯,就是视频里说的那个井字棋.视频里说了它的基本思路,现在,需要你把它全部实现出来啦. 你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长.比如n ...
- (八)open函数的flag详解
3.1.4.open函数的flag详解13.1.4.1.读写权限:O_RDONLY O_WRONLY O_RDWR(1)linux中文件有读写权限,我们在open打开文件时也可以附带一定的权限说明(譬 ...