HBase:NoSQL数据库(1.概述)

本文介绍了NoSQL数据库的特点和适用场景,重点解析了HBase的定义、特点、优缺点、应用场景及架构。HBase作为一款分布式、列式存储的NoSQL数据库,具备海量数据存储、高并发读写、灵活的数据模型等优势,适用于大数据量、高并发的场景。文章详细阐述了HBase的行键、列族、RegionServer、Master、Zookeeper、HDFS等核心概念,并探讨了数据的刷写和合并过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.NoSQL介绍

  • NoSQL(not only sql),泛指非关系型的数据库;是为了解决关系型数据库在数据量过大时的性能下降而兴起
  • NoSQL数据库一般都是分布式数据库
  • NoSQL数据库一般都复合CAP定理:CAP定理指强一致性、高可用性、强分区容错性最多只能取其二,无法三者兼顾

1.1 特点:

1. 易扩展:去掉关系数据库的关系型特性,数据之间无关系,易扩展

2. 大数据量,高性能:NoSQL数据库具有非常高的读写性能

3. 灵活的数据模型:NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式

4. 高可用
5.不支持SQL

1.2 适用场景

  1. 数据模型比较简单
  2. 需要灵活性更强的IT系统
  3. 对数据库性能要求较高
  4. 不需要高度的数据一致性
  5. 对于给定key,比较容易映射复杂值的环境

2.HBase 简介

2.1 HBase 定义

HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库

  • Hbase面向列存储;
  • HBase基于Hadoop和HDFS;
  • 类似于Google的BigTable,提供对10亿级别表数据的快速随机实时读写;
  • HBase是开源的,分布式的,基于版本号的分布式数据库;

2.2 HBase 特点

  • 海量存储
    HBase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与HBase的极易扩展性息息相关。正是因为HBase良好的扩展性,才为海量数据的存储提供了便利

  • 列式存储(列族存储)
    这里的列式存储其实说的是列族存储,HBase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定

  • 极易扩展
    HBase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)
    通过横向添加RegionSever的机器,进行水平扩展,提升HBase上层的处理能力,提升Hbsae服务更多Region的能力

  • 高并发
    在并发的情况下,HBase的单个IO延迟下降并不多。能获得高并发、低延迟的服务

  • 稀疏(列的灵活性)
    在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的

2.3 HBase 优点

  1. 基于HDFS实现数据的存储,因此具有高容错性,高扩展性和吞吐量
  2. HBase采用key/value的存储方式,即使数据海量增长也不会降低查询性能
  3. HBase是一个列式数据库,单张表字段很多时,可以将相同的列(以region为单位)存到不同的服务器上,分散负载压力

2.4 Hbase 缺点

  1. 架构设计复杂,且使用HDFS作为分布式存储,因此只是存储少量数据,它也不会很快。在大数据量时,它慢的不会很明显

  2. Hbase不支持表的关联操作,因此数据分析是HBase的弱项。常见的 group by或order by只能通过编写MapReduce来实现

  3. Hbase部分支持了ACID:

  • 事务的原子性(Atomicity);
  • 事务的一致性(Consistency)
  • 事务的独立性(Isolation)
  • 事务的持久性(Durability)

2.5 HBase 应用场景

适合场景:单表超千万,上亿,且高并发

不适合场景:主要需求是数据分析,比如做报表。数据量规模不大,对实时性要求高

2.6 随机读写

HDFS只支持追加写,不支持随机写

HBase基于HDFS,hbase的数据由hdfs进行读写,hbase支持随机写

随机写操作: update+delete:

  • 可以借助 insert+时间戳(版本号)
  • 只允许客户端返回时间戳最新(版本号最大)的数据

2.7 实时读写

如何做到海量数据的实时读写?

①分布式

②将数据不管是读还是写都放入内存

③索引,LSM树

④kv存储

⑤列式存储(HFile)

⑥布隆过滤器(查询)

3.HBase数据模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值