对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 '表名称',' ...
随机推荐
- javax.servlet.ServletException: com.ibatis.sqlmap.client.SqlMapException: There is no statement named...问题
可能存在3种情况: 1.在xxx.xml文件中有两个标签的id命名相同: 2.DAO实现类方法中没有写对应xxx.xml的id名称: 3.实体映射文件xxx.xml未加入到sqlMap-Config. ...
- keytool的使用
1. 创建数字证书 keytool -genkey -v -alias scent -dname "CN=John,OU=MNG,O=Corp,L=Hangzhou,ST=Zhejiang, ...
- python学习之while语句
while循环 1.简单的while循环while True: ")#这是一个简单的while循环,当等于True时会一直打印1 2.while执行多少次后退出 coun=0while Tr ...
- 【noip新手入门向】OpenJudge1.3-14大象喝水
一.写在前面 我也不知道我为什么要写这个鬼畜的东西←_←才不是为了水blog量什么的(划掉),其实是为了明天给学弟学妹们传教准备. 这道题对完全对c语言没有概念的小萌新们极度友好,可以锻炼小萌新们的代 ...
- [问题2014A04] 解答
[问题2014A04] 解答 (1) 由条件可得 \(AB+BA=0\), 即 \(AB=-BA\), 因此 \[AB=A^2B=A(AB)=A(-BA)=-(AB)A=-(-BA)A=BA^2=B ...
- git学习笔记总结
git试免费的开源的分布式版本控制系统,github是一个用git做版本控制的项目托管平台.说白了git就是帮忙你管理你开发的代码,代码每次修改的历史,多人更好的一起开发项目. 分布式版本控制系统,每 ...
- ReentRantLock使用
synchronized原语和ReentrantLock在一般情况下没有什么区别,但是在非常复杂的同步应用中,请考虑使用ReentrantLock,特别是遇到下面2种需求的时候. 1.某个线程在等待一 ...
- Openvpn 本地密码验证
1.修改配置文件.(添加下列配置) auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env #开启用户密码脚本 client-cert-not-r ...
- PBcR - 纠错及组装算法
单分子测序reads(PB)的混合纠错和denovo组装 我们广泛使用的PBcR的原始文章就是这一篇 原文链接:Hybrid error correction and de novo assembly ...
- centos7中 npm install express 时Error: Cannot find module 'express'错误
费了很大劲最后在网上找到,在自己的工程目录下再次执行npm install express搞定.