HBASE学习(一)

1.HBASE基础架构,

1.1 参考:

HBase集群架构与读写优化:理解核心机制与性能提升-CSDN博客

1.2问题:

1.FLUSH对hbase的影响

  1. HLog和memstore的区别

hlog中存储的是操作记录,比如写、删除。而memstor中存储的是写入的表数据

2.HBASE与HDFS的关系

HBASE的主和从分别称为HMaster和RegionServer。其数据结构和表(表中又分为行和列)。支持实时读写。(如何实现的??)

HDFS的主和从分别称为NameNode和DataNode。其数据结构为hfile文件,无表的概念。不支持实时读写,用于批处理和高吞吐量的读写

  • HDFS 是 Hadoop 的分布式存储系统,提供高吞吐量的数据访问。
  • 特点:
    1. 数据以文件块(block)的形式分布在多个 DataNode 上。
    2. 支持数据冗余和容错,默认情况下每个文件块有 3 个副本(所以是HDFS机制实现了数据备份)。
    3. 主从架构:NameNode 负责元数据管理,DataNode 负责实际的数据存储。
  • 与 HBase 的关系:
    • HBase 依赖 HDFS 存储数据和元数据(如表的 Region 数据、WAL 日志等)。
    • HDFS 提供了可靠的存储基础,但不支持实时随机读写,这是 HBase 的补充功能。
  • HBase 是一个基于 HDFS 的分布式 NoSQL 数据库,专为海量数据的实时随机读写设计。
  • 特点:
    1. 数据按行存储,基于键值对。
    2. 支持超大规模表(行数和列数可以达到数十亿级)。
    3. 提供高性能的随机读写操作。
  • 依赖组件:
    1. HDFS:用于持久化存储表数据和 WAL(Write-Ahead Log)日志。
    2. ZooKeeper:用于集群管理、故障恢复、元数据存储和分布式协调。
  • HBase 的补充功能:
    • 提供高性能的随机读写,而 HDFS 主要用于批处理和高吞吐量的读写。
  1. NameNode 和 HMaster是否等价

NameNode 和 HMaster 不等价,它们是分布式系统中两个独立的组件:

  • NameNode 是 HDFS 的管理节点,关注的是文件存储。
  • HMaster 是 HBase 的管理节点,关注的是表和 RegionServer 的管理

对比NameNode 和 HMaster

特性 NameNode HMaster
系统所属 HDFS HBase
作用 管理文件系统元数据和块分布 管理 HBase 表和 RegionServer
元数据存储 存储在内存中(文件元数据) 部分存储在 HDFS 和 ZooKeeper
与数据存储关系 指挥 DataNode 存储文件块 指挥 RegionServer 存储 HBase 数据
高可用性 支持 Active/Standby NameNode 支持 Active/Standby HMaster

3.hdfs不支持实时读写,hbase如何做到可以支持实时读写

读写流程的优化

  • 写流程(先写入内存,存储到一定量后才写入hfile)
    1. 数据写入 WAL(顺序写 HDFS)。
    2. 数据写入 MemStore(内存操作,低延迟)。
    3. 数据刷入 HDFS(按照rowkey顺序写 HFile,提升了使得后续的读速度)。
  • 读流程
    1. 查询数据时,优先从 MemStore 或 BlockCache(经常读取的数据会存储在BlockCache中) 中读取。
    2. 如果数据不在内存中,则从 HFile(HDFS)中加载。
    3. 查询结果可以缓存到 BlockCache 中,加速后续访问。

总结原因就是:1.添加了内存作为中间缓冲区;2.数据按照rowkey顺序写入hfile

Zookeeper和Hbase的关系

1.zookeeper在HBASE 中的作用时什么?

  • 记录HBase 集群的运行状态
    • 活跃的 HMaster 和备份 HMaster 的状态。
    • 活跃的 RegionServer 列表。
  • 记录表和 Region 的元数据的位置
    • hbase:meta 表的位置(hbase:meta 是存储表和 Region 元数据的特殊表)。
    • 某些分布式锁和协调信息,例如 Region 的迁移状态。
  • 故障恢复和选主
    • 在 HMaster 故障时,ZooKeeper 会负责进行新主节点的选举。

2.读写数据时,为什么要从zookeeper中获取hbase的元数据,hbase的元数据时存储在zookeeper中吗?

HBASE的元数据存储的HDFS中,但是元数据在HDFS中的存储位置却存储在zookeeper中,所以想访问元数据时,首先需要访问zookeeper。

同时,HMaster 会将表和 Region 的元数据加载到内存中以加速操作,但这些信息的持久化存储在 HDFS 和 ZooKeeper 中。

相关推荐
仰望星空的凡人2 小时前
【JS逆向基础】数据库之MongoDB
javascript·数据库·python·mongodb
Brookty4 小时前
Java线程安全与中断机制详解
java·开发语言·后端·学习·java-ee
duration~4 小时前
PostgreSQL并发控制
数据库·postgresql
飞速移动的代码菌4 小时前
【DataWhale】快乐学习大模型 | 202507,Task08笔记
笔记·学习
给力学长4 小时前
自习室预约小程序的设计与实现
java·数据库·vue.js·elementui·小程序·uni-app·node.js
不在了情绪5 小时前
[ The Missing Semester of Your CS Education ] 学习笔记 Vim篇
笔记·学习·vim
试着5 小时前
零基础学习性能测试第五章:JVM性能分析与调优-JVM概念,java程序运行原理
java·jvm·学习·零基础·性能测试
迷茫运维路6 小时前
MySQL5.7主从延迟高排查优化思路
数据库·主从延时高
遇见尚硅谷6 小时前
C语言:20250728学习(指针)
c语言·开发语言·数据结构·c++·笔记·学习·算法
Aronup6 小时前
NLP学习开始01-线性回归
学习·自然语言处理·线性回归