2024年【HBase入门与实战】一文搞懂HBase!_hbase入门与实践(1)

本文详细阐述了HBase,一种基于列存储的NoSQL数据库,介绍了其分布式架构、数据管理、可用性保障机制以及与BI和大数据的关系。重点讨论了HBase的物理架构、数据存储、读写流程和元数据管理,以及在高容量写入和时间序列数据处理的应用场景。

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

				- 合并一个表中的所有`HFiles`
				- 会彻底删除标记为删除的数据
				- 通常是手动触发
			+ compact后的数据【实际存储】在HDFS上,小的`HFile`应该远小于128M
+ 分布式架构
	- HBase表:抽象概念,物理存储上被细分为多个Region。
	- Region:数据存储和访问的基本单元。
	- RegionServer:运行在集群中的服务器,负责管理和服务其上存储的一个或多个Region。
	- HBase采用的是典型的Master/Slave架构。HBase Master负责管理表和Region的元数据信息,以及RegionServer的负载均衡。而RegionServers负责处理客户端的读写请求,并管理存储在其上的Regions。
+ 可用性
	- ZooKeeper实现了Client和HMaster之间的协调管理
	- HLog(WAL:Write Ahead Log 当数据写入具体的磁盘之前,先将其写一份在日志文件上)
		* HLog能够将死去的RegionServer"复活",获取其原来的表数据。
		* 当HRegionServer死的时候,则将HLog的数据迁移到另一台服务器上。
		* 而数据迁移又依靠HMaster,因此HMaster也需要容灾机制,则出现了HMaster Backup和ZooKeeper进行协调管理。
		* 如果ZooKeeper和HMaster之间心跳"断"了,则启用HMaster Backup.
  • 事务性
    • NoSQL 更加注重 性能、扩展性、灵活性,不像RDBMS一样强调原子性或一致性。

    • 一致性问题
      在这里插入图片描述

      • 发生场景:通常发生在实时数仓。
      • 批处理:规定记录数达到一定值才发送,可能导致时效性差(前后两条记录的时间间隔长)。
      • 流处理:采用每隔一段时间(水位线)就进行数据发送的策略。面临的挑战是如何确保在时间范围内的数据都被纳入处理。
        • 解决方案:允许一定的延迟(例如,计算3秒内的数据,但结果会在5秒内出来),这是为了等待那些符合时间范围但尚未被处理的数据。
      • 流批一体:流处理和批处理结合的处理模式(Flink)
      • 侧输出流:
        • 为了保证最终一致性,对因延迟未能纳入批次的数据放入侧输出流中。
        • 例如:如果在一个设定的时间窗口(如秒级窗口)内,某些数据未能被处理,这些数据就可以被放入侧输出流中。随后,可以在一个更长的时间窗口(如分钟窗口)内对这些数据进行处理。
      • 实时数仓 VS 离线数仓
        • 数据准确性:离线数仓高于实时数仓
        • 时间范围:
          • 实时数仓的时间范围:秒、分、时、天
          • 离线数仓的时间范围:天、周、月、年
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值