HBase初识

HBase初识

1、hbase的产生原因:
内因:Hadoop之MapReduce/hds/hive 等适合做批量数据处理,而且只能以顺序方式访问数据。
外因:现实开发应用场景中,经常需要海量数据场景下的实时数据随机访问的需求,Hadoop作为大数据的承载和计算平台应该予以满足。
2、hbase介绍
Hadoop database 的简称
hbase是一个数据模型,属于Hadoop生态系统的一部分,提供对海量数据的随机实时读/写访问。
构建在Hadoop之hdfs之上,分布式面向列的数据库。
参考Google的bigtable数据库设计,拥有hdfs的分块存储、冗余、容错的优良特性。
完全开源、优秀的横向扩展性。
· hdfs 和 hbase 的对比
hdfs:适于存储大文件的分布式问件系统,不支持快速单独记录查找,即顺序访问,批量任务处理,吞吐量高、时延高、实时性差;
hbase:建立在hdfs之上的数据库,提供在较大的表快速查找,即随机访问,也可以顺序访问,提供了亿级记录低延迟访问任意行记录,即随机存取(原因:内壁使用哈希表和提供随机接入,并且其存储索引,可将在hdfs文件中的数据进行快速查找。)
· 应用场景
高并发、简单条件、随机查询
不擅长join类操作,新版本正在陆续支持与升级中。
半结构化、非结构化数据存储
**·**应用案例
数据采集结果存储、海量数据实时查询等项目开发当中使用非常广泛。
国外的Facebook、Google、Yahoo,国内的互联网中大型公司、BAT内部均有广泛使用。
**·**hbase数据模型
重要概念
命名空间(namespace)
类比于关系型数据库中的不同database数据库。
利用命名空间,在多租户场景下可做到更好的资源和数据隔离。
表(table)
类比于rdb中的表
以“表”为单位组织数据,表由多行组成
行(row)
行由一个RowKey和多个列族组成,一个行有一个RowKey作为行的唯一标识。
列族(column family,简称CF)
每一行由若干列族组成,每个列族下可包含多个列。
列族是列共性的一些体现,如baseInfo列族和addressInfo列族,baseInfo可以包括name(名字)、age(年龄),gender(性别)属性列,而addressInfo可以包括province(省份),city(市),email(邮箱)等属性列。
物理上,同一列族的数据存储在一起的
列限定符(column qualifier)
列由列族定符唯一指定,像如上的name,age即是baseInfo列族的列限定符。
单元格(cell)
单元格由RowKey、列族、列限定符唯一定位,单元格之中存放一个值(value)和一个版本号。
时间戳(timestamp)
即为版本号,来标识一个单元格的数据的最新插入或是修改时间
单元格内不同版本的值按时间倒序排列,最新的数据排在最前面
核心设计
面向列(列族)定义、列(列族)存储的数据库,其数据库也称为空间namespace。
表的基本组成单元是行,每行有个唯一标识称为rowKey,表中数据按rowKey进行字典序排序存储。
一个表有多个列族以及每一个列族可以有任意数量的列,后续新增列的值连续地存储在磁盘上。
表中的每个单元格值都具有时间戳,来标识该单元格的最后插入或更新时间。
·简易逻辑说明
表是行的集合
行是列族的集合
列族是列的集合
列是键值对的集合

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值