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 中。

相关推荐
海绵宝宝转agent8 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
每天都要写算法(努力版)9 小时前
【行业前沿报告】DAgger:让智能体在自己走到的状态上学习
人工智能·学习·机器学习
Elastic 中国社区官方博客9 小时前
将你自己的密钥用于现有 Elastic Cloud 部署
大数据·数据库·elasticsearch·全文检索
红海云10 小时前
Jev:给智能系统做判断的模型
大数据·数据库·人工智能
wjkjpcba10 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭10 小时前
达梦事物特性及MVCC
linux·运维·数据库
小马同学-11 小时前
MySQL主从复制和读写分离
数据库·mysql
谢亮_vipxieliang11 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
geovindu11 小时前
sql: JSON and XML Data Handling in SQL using sql server 2025
大数据·数据库·sqlserver·数据库开发·数据库架构
IT大白鼠12 小时前
图数据库系列 · 第 02 篇——架构拆解:原生图存储到因果集群
数据库·架构·nosql