HBase的原理、特点、适用场景、HBase与hive的不同

HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的还来那个数据,利用Zookeeper作为协调工具。

HBase的特点

  1. 海量存储:HBase适合存储PB级别的海量数据。
  2. 列式存储:列族在创建表的时候就必须指定。
  3. 极易扩展:HBase的扩展性主要体现在两个方面,一个是基于上层处理能力的扩展(ReginServer),一个是基于存储的扩展(HDFS)。
  4. 高并发
  5. 记录非常稀疏:稀疏主要是针对HBase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。
  6. 多版本数据

HBase的适用场景

  1. 查询简单(行级、范围、全表查询)
  2. 不涉及到复杂的Join查询,基于RowKey/RowKey的范围查询
  3. 订单流水,交易记录,需要记录历史版本的数据等

HBase不适用场景

  1. 几千、几百万那种还不如使用RDBMS
  2. 需要类型列(Phonix,scala,spark,Kafka)
  3. 需要跨行事务,目前HBase只支持单行事务,需要跨行必须依赖第三方服务
  4. SQL查询(可使用Phonix on HBase解决)
  5. 硬件太少,因为HBase依赖服务挺多,比如至少5个HDFS DataNode,1个HDFS NameData(为了安全还需要一个备节点),一个Zookeeper集群,然后还需要HBase自身的各节点
  6. 需要表间Join,HBae只适合Scan和Get,虽然Phonix支持了SQL化使用HBase,但Join性能依然很差,如果非要用HBase做Join,只能在客户端

Hive和HBase的不同

主要有五点:
  1. hive是建立在Hadoop之上为了降低MapReduce编程复杂度的ETL工具。
    hbase是为了弥补Hadoop对实时操作的缺陷。
  2. hive是纯逻辑表,因为hive的本身并不能做数据存储和计算,而是完全依赖Hadoop
    hbase是物理表,提供了一张超大的内存Hash表来存储索引,方便查询。
  3. hive是数据仓库工具,需要全表扫描,就用 hive,因为hive是文件存储。
    hbase是数据库,需要索引访问,则用hbase,因为hbase是面向列的NoSQL数据库。
  4. hive表中存入数据(文件)时不做校验,属于读模式存储系统。
    hbase表插入数据时,会和RDBMS一样做Schema校验,所以数据写模式存储系统。
  5. hive不支持单行记录操作,数据处理依靠MapReduce,操作延时高。
    hbase支持单行记录的CRUD,而且是实时处理,效率比hive高很多。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值