分布式数据库HBase

分布式数据库Hbase

4.1 概述

4.1.1从BigTable说起

 1.BigTable是一个分布式存储系统,利用谷歌提出的MapReduce分布式并行计算模型来处理海量数据,用谷歌分布式文件系统GFS作为底层数据存储,采用Chubby提供协同服务管理(谷歌的协调服务,Chubby类似Zookeeper)

 2.BigTable的特性

  *支持大规模海量数据

  *分布式并发数据处理效率极高

  *易扩展且可动态伸缩

  *适用于廉价设备

  *适合读操作不适合写操作

4.1.2Hbase简介

 1.Hbase是一个高效,高可靠,高性能,面向列,可伸缩的分布式数据库,是BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据

 2.Hbase利用MapReduce来处理Hbase中的数据,实现高性能计算,利用Zookeeper作为协同服务,实现稳定服务和失败恢复,使用HDFS作为底层存储,当然也可以使用本地文件系统,Sqoop为Hbase提供了高效,便捷的RDBMS数据导入功能,Pig和Hive为Hbase提供了高层语言支持

4.1.3Hbase与传统关系数据库的对比

 1.关系数据库:面向磁盘的存储和索引结构,多线程访问,基于锁的同步访问机制,基于日志的恢复机制和事务机制,关系数据库的关键特性----完善的事务机制和高效的查询机制

 2.Web2.0 关系数据库不在满足需求

Hbase与传统数据库的主要区别

 *数据类型,Hbase采用了更加简单的数据模型,他把数据存储为未经解释的字符串,用户可以把不同的结构化和非结构化数据都序列化成字符串,保存到Hbase,用户只需要编写不同的程序把字符串解析成不同的数据类型

 *数据操作,关系数据库中包含CRUD等和表连接,利用主外键实现, Hbase只有简单的插入,查询,删除,清空等,只采用单表主键查询,无法实现表连接

 *存储模式,关系数据库基于行存储,连续存储,读取时,按顺序扫描元组筛选出自己想要的,如果只有几个属性是需要的,那么就浪费了许多磁盘空间和内存带宽,Hbase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的优点:降低IO开销,支持大量用户高并发,同一列族中的数据会一起被压缩,具有较高的压缩比

 *数据索引,关系数据库可以针对不同列构建复杂索引,Hbase只有一个索引,行键

 *数据维护,关系数据库可以更改,Hbase则不会删除旧的数据,而是新增加一个数据

 

*可伸缩性,关系数据库很难实现横向扩展,纵向扩展很有限,Hbase可以

**Hbase的局限性:不支持事务,无法实现跨行的原子性

4.2 Hbase访问接口

     类型          特点                  场合

Native Java API  最常规高效  适合Hadoop MapReduce作业和批处理Hbase表

Hbase Shell     Hbase命令工具  适合于Hbase管理

Thrift Gateway 利用Thrift序列化技术支持多语言 适合其他异构系统访问Hbase

REST Gateway 解除了语言限制 支持REST风格的Http API访问Hbase

Pig         使用Pig Latin流式编程语言  适合做数据统计

Hive        简单           用Sql方式访问Hbase

 

4.3 Hbase 数据模型

4.3.1数据模型概述

 1.Hbase是一个稀疏,多维度,排序的映射表,这张表的索引是行键,列族,列限定符,时间戳。每一个值是未经解释的字符串,没有数据类型,

 2.Hbase中执行更新操作时,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值