博客
关于我
7 Hbase 概述
阅读量:479 次
发布时间:2019-03-06

本文共 1418 字,大约阅读时间需要 4 分钟。

一、什么是 HBase

HBase 是构建在 Hadoop 之上的一个高可用、高性能、多版本的分布式 NoSQL 数据库。它结合了 Hadoop 的分布式存储能力与强大的处理能力,能够高效管理和存储海量结构化数据。HBase 的核心特性使其成为适合大数据场景的高性能数据库选择。

二、HBase 的特点

HBase 与传统数据库和 HDFS 存储系统有显著的不同之处。

与 HDFS 对比

  • 支持随机写入:HBase 允许随机写入操作,而 HDFS 不支持。
  • 高可用性:通过 HLog 和 Zookeeper 维护数据高可用性,保障数据不丢失。

与传统数据库对比

  • 存储能力:传统数据库在数据量较大时会性能下降,而 HBase 通过分布式存储(HDFS)支持海量数据存储。
  • 备份机制:HBase 基于 HDFS 的文件存储机制,具备完善的数据备份能力。
  • 性能优化:通过 Zookeeper 协调,提升数据访问效率。

三、HBase 数据的存储结构

HBase 的存储结构从逻辑和物理层面进行优化设计。

逻辑结构

  • RowKey:定义表的主键,用于数据检索。
  • 列簇(Column Family):数据按照列簇归类存储,提升数据管理效率。
  • 单元(Cell):数据存储单元,基于 RowKey 和 ColumnFamily 确定。
  • 时间戳(Timestamp):支持多版本数据存储,每个 Cell 可存储多个版本。

物理结构

  • 数据通过 Column Family 进行分区存储,每个 Column Family 对应单独的 HFile,节省存储空间。

四、HBase 架构

HBase 的架构设计包括客户端、Zookeeper、Master、RegionServer 等核心组件。

组件解析

  • 客户端:通过 RPC 接口与 RegionServer 交互,处理数据操作。
  • Zookeeper:维护集群元数据,管理 Master 和 RegionServer 的状态。
  • Master:处理用户操作,分配 Region,监控 RegionServer。
  • RegionServer:负责存储和管理具体的 Region 数据,包括 HLog 和 HFile。
  • HLog:实现数据高可靠性存储,用于数据恢复和集群同步。
  • BlockCache:提高数据读取性能,提升用户访问速度。
  • Region:通过 RowKey 将表水平切割为多个 Region,分布存储于多个 RegionServer。

五、HBase 数据读写流程

写数据流程

  • 客户端处理

    • 提交写入请求,数据先缓存本地,满足条件后批量写入。
    • 确定 RegionServer,分组请求发送。
  • RegionServer 写入

    • 处理请求,反序列化数据,检查权限。
    • 建立行锁,更新写入时间,创建 HLog edit。
    • 同步写入 HLog 和 MemStore,刷写 HFile,完成事务。
  • MemStore Flush

    • 内存数据定期同步至 HFile,维持存储一致性。
  • 读数据流程

  • 第一次读数据

    • 获取元数据位置,查询目标 RegionServer。
    • 从指定 RegionServer 读取 Row 数据。
  • 后续读数据

    • 利用缓存信息,直接访问 RegionServer。
    • 未缓存时重复第一次读数据流程。
  • HBase 的设计理念和架构优化使其成为大数据存储的高效解决方案,适用于需要快速读写和强一致性数据存储的场景。

    转载地址:http://xarbz.baihongyu.com/

    你可能感兴趣的文章
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_NIFI集群知识点_认识NIFI集群以及集群的组成部分---大数据之Nifi工作笔记0014
    查看>>
    NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>