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

相关推荐
Chef_Chen21 分钟前
从0开始学习R语言--Day20-ARIMA与格兰杰因果检验
开发语言·学习·r语言
@大嘴巴子1 小时前
MySQL知识回顾总结----数据库基础
数据库·mysql
lubiii_1 小时前
SQL手工测试(MySQL数据库)
数据库·mysql·web安全·网络安全
凌辰揽月1 小时前
Web后端基础(基础知识)
java·开发语言·前端·数据库·学习·算法
想你依然心痛1 小时前
数据库入门:从原理到应用
数据库
whoarethenext2 小时前
C++ OpenCV 学习路线图
c++·opencv·学习
恰薯条的屑海鸥3 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十四期-XXE模块)
网络·学习·安全·web安全·渗透测试
20242817李臻3 小时前
20242817李臻-安全文件传输系统-项目验收
数据库·安全
Lester_11013 小时前
嵌入式学习笔记 - freeRTOS vTaskPlaceOnEventList()函数解析
笔记·学习
行思理3 小时前
MongoDB慢查询临时开启方法讲解
数据库·mongodb