Hbase体系结构+读写流程+简单调优+异常数据恢复

本文详细介绍了HBase,一个基于HDFS的分布式数据库,适用于海量数据存储。HBase与传统数据库的主要区别在于其面向列存储、数据灵活度高和快速响应。文章讨论了HBase与HDFS的关系,HBase的体系结构,包括RowKey、Column Family等概念,以及读写流程。此外,还提出了应对热点问题的调优方法,如Salting、Hashing和Reversing,并概述了HRegion Server异常数据恢复的过程。
摘要由CSDN通过智能技术生成

Hbase简介

  1. 分布式的、面向列,可以运行在HDFS上的数据库
  2. 适合存储访问超大规模的数据集
  3. 不是关系型数据库,不支持SQL
  4. 源于google的bigtable论文
  5. Hbase,不支持各种数据类型,只有字符串类型(底层都是:字节数组)

概念介绍

  1. RowKey:表中每条记录的主键;
  2. Column Family:列族,将表进行横向切割;
  3. Column:属于某一个列族,可动态添加列;
  4. Version Number:类型为Long,默认值是系统时间戳,可由用户自定义;
  5. Value:真实的数据;
  6. Region:一段数据的集合;
  7. RegionServer:用于存放Region的服务

Hbase与传统型数据库的区别

  1. 存储的量级
    传统的关系型数据库,随着数据量的增大,查询速度会越来越慢,一张有上百个字段的数据表在有千万级别的数据量时,响应速度会变的非常缓慢。
    而HBase是一个分布式的数据存储系统,它的建立是基于HDFS的。其设计的初衷就是为了解决传统关系型数据库在处理海量数据时,速度太慢的问题。

  2. 数据的灵活度
    HBase是面向列存储的,其存储结构是一种key-value的方式,因此在数据有新的字段需求的时候可以随意增加。
    而传统关系型数据库则只能通过关联表的方式,通过增加外键和索引来处理新的字段,因此极为不便。

  3. 响应的速度
    传统关系型数据库读写数据是需要考虑主键、外键和索引等因素的,随着数据的剧增其响应速度也是梯度下降的。
    Hbase则不会有这样的问题,其写数据的性能和表的大小无关,并且由于其key-value的存储格式等原因,其读数据的速度也几乎不会下降。

  4. 良好的扩容
    HBase的扩容只需要在集群上简单的增加节点。其新增节点的代价很小,HBase中增加一个节点服务器代价不高,并且由于节点很多,某个节点宕机并不会对整个集群造成巨大影响。
    而传统关系型数据库只能通过升级硬件来升级服务,单台高性能的服务器价格是非常昂贵的。

  5. 索引的支持
    传统关系型数据库则会随着数据量的增加,出现索引膨胀的问题。
    HBase是不支持索引的,在降低了查询便利度的同时增加了响应性能。

  6. 自动分区
    HBase中的数据表会自动分裂,存入合适的RegionServer上。
    传统关系型数据库则需要手动操作来实现分区。

Hbase与HDFS的关系

HBase可以构建在磁盘上,也可以构建在HDFS上,构建在HDFS上是目前较广泛的用法。它与Hadoop的关系如图所示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值