HBase学习笔记

HBase学习笔记

是BigTable的开源实现

1、 HBase特性

高可靠,高性能,面向列,可伸缩。
HBase–>分布式数据库–>可以用来存储非结构化和半结构化的松散数据
十亿行,百万列的级别
虽然已经有了HDFS和MapReduce,但是Hadoop主要解决大规模数据离线批处理,没有办法实现大数据实时处理需求的。

2、 HBase访问接口

提供了一个原生Java API,Shell命令,Thrift Gateway, REST Gateway
提供SQL类型接口:Pig, 数据仓库Hive

3、 HBase数据模型

HBase是一个稀疏的多维度的排序映射表,标的索引通过(行键, 列族, 列限定符, 时间戳)定位一个数据的。每一个数据都是未经解释的字符串。

物理上,所有的列族成员都一起存放在文件系统中,所以,虽然HBase描述为一个面向列的存储器,但实际更加准确的说法是它是一个面向列族的存储器。由于调优和存储都是在列族这个层次上进行的,所以最好使所有列族成员都有相同的访问模式和大小特征。

4、 区域

HBase自动把表水平划分成区域,每个区域由表中行的子集构成。每个区域由他所属的表,它所包含的第一行及其最后一行(不包括最后一行)来表示。
区域是HBase在集群上分布数据的最小单位,

5、 实现

正如HDFS和YARN是由客户端,slave,master(即HDFS的namenode,datanode,以及YARN的资源管理器和节点管理器)组成。HBase也采用相同的模型,
HBase采用master节点协调管理一个或多个regionserver。

6、 运行中的HBase

HBase内部保留名为hbase:meta的特殊目录表,他们维护着当前集群上所有区域的列表,状态和位置。Hbase:meta表表中使用区域名作为键。区域名(由所属的表名,区域的起始行,区域的创建时间,对其整体进行的MD5哈希值)组成。

7、 HBase shell

%hbase shell
hbase(main):001:0>
hbase(main):001:0>create ‘test’, ‘data
hbase(main):001:0>list
hbase(main):001:0>put ‘test’, ‘row1’, ‘data:1’,‘value1’
hbase(main):001:0>put ‘test’, ‘row2’, ‘data:2’,‘value2’
hbase(main):001:0>get ‘test’ ‘row1’
hbase(main):001:0>scan ‘test’
>//删除表
hbase(main):001:0>disable ‘test’
hbase(main):001:0>drop ‘test’

8、 HBase和RDBMS的比较

HBase的特性:

  • 没有真正的索引
    行是顺序存储的,每行中的列也是,所以不存在索引膨胀的问题,而且插入性能和表的大小无关
  • 自动分区
    在表增长的时候,表会自动分裂成区域,并分布到可用的节点上
  • 线性扩展和对于新节点的自动处理
    增加一个节点,把它指向现有集群并运行regionserver。区域自动重新进行平衡,负载均匀分布
  • 普通商用硬件支持
    底层硬件廉价,RDBMS需要支持大量IO,因此要求昂贵的硬件
  • 容错
    大量节点意味着每个节点的重要性并不突出,不用担心单个节点的失效
  • 批处理
    MapReduce集成功能使我们可以用全并行的分布式作业根据“数据的位置”来处理他们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值