搜档网
当前位置:搜档网 › hbase安装及操作

hbase安装及操作

一.概述:
1、hbase是一个构建在hdfs上的分布式列存储系统;
2、hbase是apache hadoop生态系统中的重要一员,主要用于海量结构化数据存储;
3、从逻辑上讲,hbase讲数据按照表、行和列进行存储。
hbase与hdfs对比:
两者都具有良好的容错性和扩展性,都可以扩展到成百上千个节点;
hdfs适合批量处理场景
不支持数据的随机查找
不适合增量数据处理
不支持数据更新
hbase表的特点:
大:一个表可以有数十亿行,上百万列;
无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;
面向列:面向列(族)的存储和权限控制,列(族)独立检索;
稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏;
数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;
数据类型单一:hbase中数据都是字符串,没有类型。
行存储与列存储:
行式数据库:
数据是按行存储
没有索引的查询使用大量IO
建立索引和物化视图需要花费大量时间和资源
面向查询的需求,数据库必须被大量膨胀才能满足性能要求
列式数据库:
数据是按列存储-每一列单独存放
数据即是索引
指访问查询涉及的列-大量降低系统IO
每一列由一个线索来处理-查询的并发处理
数据类型一致,数据特征相似-高效压缩
二.hbase数据模型:
row key Byte array
表中每条记录的“主键”
方便快速查找
Column Family
拥有一个名称(String)
包含一个或多个相关列
Column
属于某个column family
包含在某一列中
familyName:columnName
Version Number
每个rowkey唯一
默认值-->系统时间戳
类型为Long
Cell
Byte array

HBase schema可以有多个Table
每个表可由多个Column Family组成
HBase可以有Dynamic Column
列名是编码在cell中的
不同cell可以拥有不同的列
version number可由用户提供
无需以递增的顺序插入
每一行的rowkey必须是唯一的
Table可能非常稀疏
很多cell可以是空的
Row Key是主键


相关主题