【大数据分析】Hbase的基本原理

news2024/10/5 19:09:09

目录

  • Hbase 架构
    • Client
    • ZooKeeper
    • Master
    • RegionServer
    • HRegion
    • Store
    • MemStore
    • StoreFile
    • HFile
    • HLog
  • Hbase数据模型
    • 关于数据模型的其他概念
      • Name Space
      • Table
      • Row
      • Column
      • Time Stamp
      • Cell

Hbase 架构

在这里插入图片描述

Client

(1).META.表,记录了用户所有表拆分出来的 Region 的映射信息,.META.可以有多个Region。
(2)-ROOT- 表,记录了 .META. 表的 Region 信息,-ROOT- 自身只有一个 Region,无论如何不会分裂。
Client 访问用户数据前需要首先访问ZK,找到 -ROOT- 表的 Region 所在的位置,然后访问 -ROOT- 表,接着访问 .META. 表,最后找到具体的数据的位置。

ZooKeeper

(1)为 HBase 提供 Failover 机制,选举 Master ,避免 Master 单点故障。
(2)存储所有 Region 的寻址入口:-ROOT- 表在哪台服务器上。-ROOT- 这张表的位置信息。
(3)实时监控 RegionServer 的状态,将 RegionServer 的上线和下线信息实时通知给 Master 。
(4)存储 HBase 的 schema,包括有哪些 table,每个table有哪些Column Family。

Master

(1)为 RegionServer 分配 Region。
(2)负责 RegionServer 的负载均衡。
(3)发现失效的 RegionServer 并重新分配其中的 Region。
(4)HDFS 上的垃圾文件(HBase)回收。
(5)处理 schema 更新请求(表的创建,删除,修改,列簇的增加等等)。

RegionServer

(1)RegionServer 维护Master分配给它的 Region,处理对这些 Region 的 IO 请求。
(2)RegionServer 负责切割变得过大的 Region,负责 Compact 操作。
(3)Client 访问 HBase 上的数据的过程并不需要 master(寻址时访问的是 zookeeper 和 RegionServer,数据读写访问的是 RegionServer)。Master 仅仅维护 Table 和 Region 的元数据信息,负载很低。
(4).META.存的是所有 Region 的位置信息,那么 RegionServer 当中 Region 在进行分裂之后产生的心 Region,由 master 决定发到哪个 RegionServer,这意味着,只有 Master 知道新的 Region 的位置信息,所以由 Master 来管理 .META. 这个表中数据的 CRUD。

HRegion

(1)table 在行的方向上分割为多个 Region。Region 是 HBase 中分布式存储和负载均衡的最小单元,即不同的 region 可以分别在不同的 RegionServer 上,但同一个 Region 不会拆分到多个 server 上。
(2)随着 Region 不断增大,某个列族达到一个阈值时,就会分成两个新的 Region。
(3)每个 Region 由以下信息标识:<表名,startRowkey,创建时间>,再由(-ROOT-和.META.)记录该region的endRowkey。

Store

每一个 Region 由一个或多个 Store 组成,至少是一个 store,hbase 会把一起访问的数据放在一个 store 里面,即为每个 ColumnFamily 建一个 store,如果有几个 ColumnFamily,就有几个 store。一个 store 由一个 memStore 和多个 StoreFile 组成。HBase 以 store 的大小来判断是否需要切分 Region。

MemStore

memStore 是放在内存里的,用于保存修改的数据。当 memStore 的大小达到一个阈值(默认128M)时,memStore 会被 flush 到文件,即生成一个快照。

StoreFile

memStore 内存中的数据写到文件后就是 StoreFile,StoreFile 底层是以 HFile 的格式保存

HFile

HBase中Key - Value数据的存储格式,HFile 是 Hadoop 的二进制格式文件,实际上 StoreFile 就是对 Hfile 做了轻量级包装,即 StoreFile 底层就是 HFile

HLog

用于做灾难恢复,HLog记录数据的所有变更,一旦 RegionServer 宕机,就可以从 Log 中进行恢复。

Hbase数据模型

在这里插入图片描述
每个store是以行为单位进行列式存储,如图蓝色标识出来的数据,它每一列的数据都会按照[Row Key,Column Key,Column Qualifier,Time Stamp,Type,Value]的方式被存成一行。

Hbase的底层依赖HDFS,而HDFS不支持修改,那我们怎么修改呢?实际上是假修改,实际是新增了一行,比如上图的phone,只是时间戳变了,我们读的时候读最新的时间戳的数据。

关于数据模型的其他概念

Name Space

命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。HBase有两个自带的命名空间,分别是hbase和default,hbase中存放的是Hbase内置的表,default表是用户默认使用的命名空间

Table

类似于关系型数据库的表概念。Hbase定义表时只需要声明列族即可,不需要声明具体的列。这意味着,往HBase写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase能够轻松应对字段变更的场景。

Row

Hbase表中的每行数据由一个RowKey和多个Column组成,数据是按照RowKey的字典顺序存储的,查询数据时只能根据RowKey进行检索,所以RowKey的设计十分重要,HBase支持3中查询方式:1、基于Rowkey的单行查询;2、基于Rowkey的范围扫描;3、全表扫描。

Column

Hbase中的每个列都由Column Family(列族)和Column Qualifier(列限定符,就是列名)进行限定。

Time Stamp

用于标识数据的不同版本(Version),每条数据写入时,系统会自动为其加上该字段,其值为写入HBase的时间,我们修改后读的最新数据就是通过时间戳确定。

Cell

由<rowkey,column family,column qualifier,time stamp>唯一确定的单元。cell中的数据全部是字节码形式存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESP32设备驱动-TMP006 红外热电堆传感器驱动

TMP006 红外热电堆传感器驱动 文章目录 TMP006 红外热电堆传感器驱动1、TMP006介绍2、硬件准备3、软件准备4、驱动实现1、TMP006介绍 Texas Instruments 的 TMP006 是一系列温度传感器中的第一款,无需接触物体即可测量物体的温度。 它使用非常灵敏的热电堆来测量从物体表面发…

怎么给视频配音?视频配音软件有哪些?

视频配音在日常生活中被广泛应用&#xff0c;比如在电影解说、游戏解说、纪录片视频等领域&#xff0c;可以帮助创作者更好地表达自己的视频内容&#xff0c;提高视频的吸引力和感染力。很多小伙伴也想学习怎么给视频配音&#xff0c;但不清楚视频配音教程哪个好&#xff1f;没…

解密服务性能利器:Pyroscope让你的应用飞起来

开发人员通常需要查看生产应用程序中的性能瓶颈以确定问题的原因。为此&#xff0c;您通常需要可以通过日志和代码工具收集的信息。不幸的是&#xff0c;这种方法通常耗时&#xff0c;并且不能提供有关潜在问题的足够详细信息。 一种现代且更先进的方法是应用和使用分析技术和工…

Camunda如何利于性能指标优化流程性能

Camunda 提供了一系列性能指标&#xff0c;以帮助用户评估和优化其业务流程的性能。以下是 Camunda 提供的一些常见性能指标&#xff1a; 1、流程执行时间&#xff08;Process Execution Time&#xff09;&#xff1a;指从流程实例启动到完成的时间。 2、流程实例数&#xff…

共同成长 合力致远,就在2023亚马逊云科技合作伙伴峰会

在云计算蓬勃发展的今天&#xff0c;在推动业务发展、实现共赢的过程中&#xff0c;价值成就&#xff0c;是亚马逊云科技对合作伙伴自始至终的承诺。为助力合作伙伴成就价值&#xff0c;共建成长路径&#xff0c;2023亚马逊云科技合作伙伴峰会将于6月27日在上海世博中心重磅启幕…

好选客浅谈鞋靴行业找外贸客户~

鞋靴概述 鞋靴制品是指使用各种材料&#xff08;如&#xff1a;皮革、布料、橡胶、塑料等&#xff09;制作的款式、类型、功能各异的鞋子和靴子&#xff0c;包括日常通勤的休闲鞋、提供舒适的缓震和支撑的运动鞋与适用于正式场合的皮鞋和高跟鞋等&#xff0c;在保护脚部、提供…

Ubuntu18.04安装Autoware.ai 1.14 GPU版

硬件&#xff1a; CPU&#xff1a;i7-9700 显卡&#xff1a;GTX 1050 Ti 1-安装ROS 2-安装显卡驱动 1-删除旧版显卡驱动 sudo apt-get remove --purge nvidia*2-查看可供安装的驱动 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get …

期货黄金交易平台哪个最可靠?如何选择?

在期货黄金交易中&#xff0c;期货黄金交易平台是否可靠&#xff1f;如何才能快速筛选出可靠的黄金交易平台&#xff1f;对投资者来说都是很重要的。 期货黄金交易平台要保障用户资金安全 资金的安全性方面要求平台受到严格监管&#xff0c;最好是受多国监管的&#xff0c;这样…

低代码平台产品排行榜揭晓:这些产品值得你选择和使用

低代码平台改变了软件开发的方式。它不需要开发团队从头开始创建应用程序&#xff0c;而是允许用户在几乎没有编码知识的情况下构建自定义应用程序。这些平台为需要定制软件解决方案但没有预算或时间聘请开发团队的企业提供了一种简单且经济高效的解决方案。而在本文中&#xf…

抖音搜索/抖音下拉词/抖音seo/抖音关键词排名系统开发

为了优化抖音平台上的内容&#xff0c;开发抖音关键词排名系统成为了必要的措施。该系统可以针对搜索结果和下拉词进行分析&#xff0c;为用户提供更准确的搜索结果。为实现这一目标&#xff0c;开发团队进行了大量的市场调查和用户研究。 在开发过程中&#xff0c;团队利用了…

【来不及刷题之】32、编辑距离(动态规划)

明确dp函数的&#x1f353;&#x1f497;&#x1f449;定义dp(s1,s2,i,j )&#xff1a;s1[0…i]变成s2[0…j]的最小编辑距离选择&#xff1a;对于每一个位置&#xff0c;s1可以&#xff1a;不做任何操作&#xff08;在相等时&#xff09;&#xff0c;删除&#xff0c;在后一个位…

PMP适合哪些人去考?

从技术向管理转型的工程技术人员&#xff1a;对于那些在职业生涯中转向项目管理的技术人员&#xff0c;PMP证书提供了必要的桥梁&#xff0c;使他们能够掌握项目管理的基本原理和最佳实践。 缺乏系统项目管理理论知识的项目经理&#xff1a;大部分项目经理都是技术出身&#x…

【OneNet】| stm32+esp8266-01s—— OneNet初体验 | 平台注册及设备创建 | demo使用

系列文章目录 失败了也挺可爱&#xff0c;成功了就超帅。 文章目录 前言1. OneNet平台注册2. 创建多协议接入设备3. 硬件连接4. 下载并运行Demo4.1 Demo下载4.2 运行Demo本小节结束 前言 最近准备耍下 Onenet平台 。下载了官方demo 遇到几个问题 1、创建接入设备 因为平台网页…

【LeetCode】5,最长回文子串。 难度等级:中等。解法很多,值得推敲。

文章目录 一、题目二、我的解答&#xff1a;双指针从头开始遍历2.1 暴力循环&#xff1a;超出时间限制2.2 优化后的暴力循环&#xff1a;虽然没有超时&#xff0c;但效率很低 三、双指针中心扩散法&#xff08;从字符串中心开始遍历&#xff09;四、动态规划法4.1 我的错误解答…

HTML+CSS实训——Day06——发现页的用JavaScript修改

仓库链接:https://github.com/MengFanjun020906/HTML_SX 前言 昨天学习了javascript的一些知识点&#xff0c;今天要学习dom的操作了&#xff0c;也就是文档对象模型的操作。 dom操作 <body><div id"i1">这是一个div</div><script>// dom…

一次redis主从切换导致的数据丢失与陷入只读状态故障

背景 最近一组业务redis数据不断增长需要扩容内存&#xff0c;而扩容内存则需要重启云主机&#xff0c;在按计划扩容升级执行主从切换时意外发生了数据丢失与master进入只读状态的故障&#xff0c;这里记录分享一下。 业务redis高可用架构 该组业务redis使用的是一主一从&am…

Spring Boot 如何实现邮件发送

Spring Boot邮件发送 在现代的Web应用程序中&#xff0c;邮件通知已经成为了一项非常重要的功能。例如&#xff0c;在用户注册、密码重置、订单确认等方面&#xff0c;我们通常都会使用邮件来通知用户。在Spring Boot应用程序中&#xff0c;我们可以使用JavaMailSender来实现邮…

2022年长三角高校数学建模竞赛A题学在长三角解题全过程文档及程序

2022年长三角高校数学建模竞赛 A题 学在长三角 原题再现&#xff1a; 长三角高等教育规模和优质高等教育资源数量处于全国领先水平。从 2019年和 2013-2019 年的平均值来看&#xff0c;长三角地区人口数量在全国占比分别是 16.22&#xff05;和 16.10&#xff05;&#xff0c…

在Css上吃过的亏

一、前言 最近参加了公司的一个小程序的开发项目&#xff0c;虽然很简单&#xff0c;但是非常急三天就要交。本来就是实习生加上前端不熟练的我&#xff0c;最终在Css定位上吃了很大的亏。今天就来了解一下Css中的几个定位。 二、什么是定位 在Css中有一个position属性&…

技术干货 | ​Navicat 面向 PostgreSQL 查询超时的工具解决方案

早前&#xff0c;我们发表过一篇《PostgreSQL 与 Navicat &#xff1a;数据库的中坚力量》 &#xff0c;从产品的发展介绍了两者的渊源与共性&#xff0c;获得了许多童鞋的认可。而随着PostgreSQL 在国内热度愈发高涨&#xff0c;应用也愈发广泛。近期&#xff0c;我们收到许多…