博客
关于我
HBase基本概念
阅读量:576 次
发布时间:2019-03-11

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

HBase基本概念

1. HBase的逻辑实体

HBase的核心逻辑实体包括6个关键概念,这些概念构成了HBase的基础特性:

  • 表(Table):数据的组织单位。
  • 行(Row):表中数据按行存储,行键是唯一标识符。行键无数据类型,始终以字节数组(byte[])形式存储。
  • 列族(Column Family):行中的数据按列族分组,列族同时确定了数据的物理存储位置。列族的设计对系统性能至关重要。
  • 列限定符(Column Qualifier)(简称列):在列族中,通过列限定符定位数据。与传统数据库不同,HBase不需要提前定义列的模式(No SchemaDB)
  • 单元(Cell):由行键、列族和版本组成的四维坐标,唯一确定一个存储单元。单元存储的值也没有数据类型,始终以字节数组形式存储。
  • 时间版本(TimeStamps):允许每行数据保存多个版本,通过时间戳区分不同版本。默认情况下,HBase会保留三个版本。
  • HBase的数据模型与传统RDBMS中的二维坐标(行+列)不同,它采用四维坐标(行+列族+列+版本),实现了一个面向列的存储架构。HBase本质上是一个键值存储系统,主要用于处理非结构化或半结构化的数据。

    2. HBase的存储模型

    HBase的存储模型基于分布式和面向列的设计原则。以下是HBase的主要存储单位:

  • Region:表按行键水平划分的存储单元,类似于RDBMS中的分区。RegionServer是HBase分布的基本单元。
  • Store:每个列族对应一个Store。Region包含多个Store,因此Region需要处理多个列族的数据。
  • StoreFile:Store包括内存缓存(MemStore)和磁盘存储(StoreFile)。MemStore用于缓存新写入的数据,当内存满载时,数据会被刷写到StoreFile中。
  • HFile:HBase的数据存储文件格式,HFile通过Hadoop分布式文件系统(HDFS)进行写入和读取。HFile的设计使得HBase能够高效地管理大规模数据。
  • 3. HBase的功能组件

    HBase系统由多个组件协同工作,确保数据的高效存储和管理:

  • HBase Client:用户或应用程序通过客户端与HBase进行交互。Client通常会带有缓存(Cache)来提升读写性能。
  • Zookeeper:负责管理HBase集群中的RegionServer,确保集群中只有一个Master节点。Zookeeper还保存Region的地址信息,监控RegionServer的状态,并存储HBase的元数据。
  • Master:HBase的管理节点,负责分配Region、检测失效的RegionServer、以及管理用户对表的操作权限。
  • RegionServer:负责存储和管理Region数据。RegionServer需要处理Region内的读写请求,并能够将过大的Region切分成多个Region以优化性能。
  • HBase的特点

    HBase是一个分布式、面向列、NoSQL数据库,具备以下核心特点:

    1. 分布式存储:支持多个RegionServer协同工作,能够处理PB级的数据量。

    2. 面向列:数据按列存储和查询,适合处理结构化或半结构化数据。

    3. 无模式数据库:不需要预定义数据模式,可以动态添加列。

    HBase的适应场景

    HBase适用于以下场景:

  • 存储海量数据:适合处理PB级甚至更大的数据量。
  • 高写入需求:支持高频率的数据插入操作。
  • 大数据的高效随机访问:通过优化的存储架构,支持快速的随机读写操作。
  • 高扩展性:能够根据数据需求自动扩展。
  • 结构或半结构化数据:支持JSON、XML等非关系型数据的存储和查询。
  • 无需复杂的事务支持:适合不需要跨行事务或复杂join操作的场景。
  • 转载地址:http://nnmvz.baihongyu.com/

    你可能感兴趣的文章
    Node.js 调用微信公众号 API 添加自定义菜单报错的解决方法
    查看>>
    node.js 配置首页打开页面
    查看>>
    node.js+react写的一个登录注册 demo测试
    查看>>
    Node.js中环境变量process.env详解
    查看>>
    Node.js之async_hooks
    查看>>
    Node.js初体验
    查看>>
    Node.js升级工具n
    查看>>
    Node.js卸载超详细步骤(附图文讲解)
    查看>>
    Node.js卸载超详细步骤(附图文讲解)
    查看>>
    Node.js基于Express框架搭建一个简单的注册登录Web功能
    查看>>
    node.js学习之npm 入门 —8.《怎样创建,发布,升级你的npm,node模块》
    查看>>
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    Node.js安装及环境配置之Windows篇
    查看>>
    Node.js安装和入门 - 2行代码让你能够启动一个Server
    查看>>
    node.js安装方法
    查看>>
    Node.js官网无法正常访问时安装NodeJS的方法
    查看>>
    node.js模块、包
    查看>>
    node.js的express框架用法(一)
    查看>>
    Node.js的交互式解释器(REPL)
    查看>>
    Node.js的循环与异步问题
    查看>>