HBase系列(二)、架构原理

详解 HBase 的架构和基本原理 HBase 的读操作比写操作慢,且读写流程没有 master 参与。 阅读详情

目录

架构

高可用机制


 

HBase系列:


架构

架构角色:

  • Client:访问Hbase的接口,并维护Cache加速RegionServer的访问;
  • Master:是RegionServer 的管理者,负责:
    • 为RegionServer分配region;
    • 负责RegionServer的负载均衡和故障转移;
    • 处理表的操作请求(create,delete,alter);
  • RegionServer:是Region 的管理者,负责:
    • 维护master分配的region;
    • 处理对这些region的IO请求(增删改查,put,get,delete);
    • 负责Region的切分合并(splitRegion,compactRegion);
  • Region:类似数据库的表,不同的是,Hbase定义表的时候只需要声明列族即可,不需要声明具体的列。这意味着,往 HBase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景。同时,一个HBase表中可以有1~n个Region。默认一个Region超过10GB(参数:hbase.hregion.max.filesize)就要进行切分,切分过程由RegionServer管理,而Region的分配由Master管理。 
  • Zookeeper:负责Master 的高可用,RegionServer 的监控,Region元数据的入口以及集群配置的维护等工作。
  • HDFS:为HBase 提供底层数据存储服务,同时为 HBase 提供数据高可用的支持;
  • Store:HBase表按照列族将同一列族内的数据存储在同一个文件夹内,按照Region将表进行横向切片,经过这两种切分之后得到的store就是真实存储数据的文件,该数据存储在HDFS内。
  • StoreFile:保存实际数据的物理文件,StoreFile 以 HFile 的形式存储在 HDFS 上。每个 Store 中会有一个或多个StoreFile(HFile),数据在每个 StoreFile 中都是有序的。
  • MemStore:写缓存,由于 HFile 中的数据要求是有序的,所以数据是先存储在 MemStore 中,排好序后,等满足flush策略才会刷写到 HFile,每次刷写都会形成一个新的 HFile。
  • HLog:数据要经 MemStore 排序后才能刷写到 HFile,但把数据保存在内存中有可能会因各种原因导致数据丢失,因此数据会先写在一个叫做 WAL(Write-Ahead Logfile)的文件中,然后再写入 MemStore 中。当系统出现故障的时候,数据可以通过这个日志文件进行回放保证数据不丢失。

可以看出,Client访问HBase上的数据时并不需要Master参与,而是从zk中找到Region 的入口然后与RegionServer 通讯提交数据增删改查的请求,Master 仅维护Table 和Region 的元数据信息,处理表结构的变更请求。 HRegionServer存取一个子表时,会创建一个HRegion对象,然后对表的每个列族创建一个Store 实例,每个Store 都会有一个MemStore 和0个或多个StoreFile 与之对应,每个StoreFile都会对应一个HFile, HFile就是在HDFS上实际的存储文件。因此,一个HRegion 有多少个列族就有多少个Store,一个HRegionServer会有多个HRegion和一个HLog。

高可用机制

上面提到HBase通过ZooKeeper协调集群所有节点的共享信息,在HMaster 和HRegionServer 连接到ZooKeeper后创建临时Znode节点,并使用心跳机制维持这个节点的存活状态,如果某个临时节点失效,则HMaster会收到通知,并做相应的处理。

 

除了在HDFS存储数据,HBase还在Zookeeper中存储一些管理信息:

  • /hbase/root-region-server :Root Region的位置(0.96版本后弃用)
  • /hbase/table/-ROOT-:根元数据信息(0.96版本后弃用)
  • /hbase/meta-region-server:元数据存储的RegionServer地址,Hbase读取数据的时候都要先在zookeeper中获取元数据,并且会把部分缓存在本地
  • /hbase/master:Hbase集群中的高可用,当前活跃的Master;
  • /hbase/backup-masters:Hbase集群中的高可用,备选的Master;
  • /hbase/namespace:命名空间;
  • /hbase/table:集群中所有表信息;
  • /hbase/table-lock:表锁,在对一张表做DDL操作时,充当分布式表锁,保证DDL操作的顺序;
  • /hbase/rs:集群中所运行的RegionServer;
  • /hbase/online-snapshot:快照操作;

Master容错:

前面也提到由于增删改查并不需要Master参与,因此当HBase中没有Master时,不会影响数据的增删改查,但会影响Reguin的切分和负载均衡以及表结构变更等操作。同时ZK会重新选举新的Master接替上一个Master的工作。


RegionServer容错:

RS定时向ZK发送心跳,当发生故障时,Master会将该RS上的Region重新分配到其他RS上以保证数据安全和可用性。


Zookeeper容错:

Zookeeper本身是一个一致性协调服务,一般配置3个以上奇数个服务,详细请参考:Zookeeper系列(二)、核心原理


WAL预写日志:

数据要经 MemStore 排序后才能刷写到 HFile,但把数据保存在内存中有可能会因各种原因导致数据丢失,因此数据会先写在一个叫做 WAL(Write-Ahead Logfile)的文件中,然后再写入 MemStore 中。当系统出现故障的时候,数据可以通过这个日志文件进行回放保证数据不丢失。

在一个RegionServer上的所有的Region共享一个HLog,一次数据的提交是先写WAL,写入成功后,再写memstore。当memstore值到达一定阈值,就会形成一个个StoreFile(HFile)。

 

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

HBase工作原理学习 介绍Hadoop 2.0生态圈中的HBase分布式列式存储数据库的相关知识,包括HBase的基本介绍、体系结构、各部分功能、数据模型和读写流程等内容。 阅读详情

相关推荐

详解HBase架构原理及安装部署步骤

一、什么是HBase  HBase 是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群。 HBase 是Google Bigtable 的开源实现,与Google Bigtable 利用GFS作为其文件存储系统类似, HBase 利用Hadoop HDFS 作为其文件存储系统;Google 运行MapReduce 来处理Bi

JimGray的博客 7477

华为hbase集群执行hbase hbck 命令 hbase hbck NoAuth for /hbase/table-lock

华为C651集群hbase 执行hbase hbck报错 ERROR [main] master.TableLockManager: Unexpected ZooKeeper error when listing children org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /hbase/table-lock 原因是因为用户认证的问题,需要用hbase的认证文件 /opt/huawei/

weixin_43697701的博客 1392

Hadoop系列-13 HBase从原理到实战:架构解析、预分区优化与Hive整合全面指南

HBase数据库存储架构与读写流程解析:HBase采用HRegionServer管理多个Region,每个Region包含多个Store(对应列族),Store由MemStore内存缓冲区和多个HFile磁盘文件组成。读流程通过ZK定位元数据,依次查询MemStore、BlockCache和HFile;写流程先写HLog和MemStore,再刷写为HFile。Flush机制通过MemStore大小、HLog数量等条件触发,分为prepare、flush、commit三阶段。Compact合并机制分为小合并(

yangwei2048的博客 1598

【分布式数据库】HBase中Zookeeper核心配置信息解读

目录一、HBase与Zookeeper的关系1.1 HA管理1.2 RegionServer管理1.3 元数据Region1.4 Region管理1.5 预写日志恢复1.6 hbase-site.xml中zookeeper的配置 集群的主节点的选举和主备的切换跟Hadoop中Namnode的HA的选举和切换机制类似(后面我会专门写一篇文章讲解Namenode的HA)。 为啥子选择zookeeper干这个事?因为随着集群节点越来越多,HMaster的管理负担会越来越重,另外它自身也有

康师傅没有眼泪 1万+

一条数据的HBase之旅,简明HBase入门教程-开篇

这是HBase入门系列的第1篇文章,介绍HBase的数据模型、适用场景、集群关键角色、建表流程以及所涉及的HBase基础概念,本文内容基于HBase 2.0 beta2版本。本文既适用于HBase新手,也适用于已有一定经验的HBase开发人员。一些常见的HBase新手问题什么样的数据适合用HBase来存储?既然HBase也是一个数据库,能否用它将现有系统中昂贵的Oracle替换掉?存放于HBase...

nosqlnotes的博客 3万+

界面上下固定_基于ANSYS的胶粘结构界面开裂有限元计算

引言:目前工程上主要有螺栓,过盈,焊接和胶粘四种常用的连接方式,本文基于ANSYS Workbench环境,引入内聚力模型来实现对胶粘结构界面开裂失效的计算,文中的界面失效参数为随意给定,不是工程实际测试数据,仅起到演示作用!1.问题的描述如图所示给出了胶粘结构的三维模型,该胶粘结构由上下钢板组成,中间通过胶粘接到一起。(胶不需要建模,其影响主要通过内聚力模型实现)上下板的材料为结构钢,...

weixin_29473667的博客 1万+

Pandas基础(DataFrame+Series)

先放一下三个链接,区分一下Numpy的Array,pandas的DataFrame,pandas的Series Array Series DataFrame 区分map apply applymap map() 是一个Series的函数,DataFrame结构中没有map()。map()将一个自定义函数应用于Series结构中的每个元素(elements)。 apply() 将一个函数作用于DataFrame中的每个行或者列, 默认应用于列,default 0 axis =1 ,apply funct

qiao_qiao_happy的博客 944

鸿蒙平板PC应用开发:在termux中安装ubuntu

打开AVNC点击右上角的设置图标,然后点击 输入 , 点击手势栏目中的 单指轻扫 ,选择滚动远程内容

DMZDAMS的博客 5201

HBase基本架构及原理

转载自:HBase基本架构及原理_newchitu的博客-优快云博客_hbase架构https://blog.youkuaiyun.com/newchitu/article/details/87101125 1、HBase框架简单介绍 HBase是一个分布式的,面向列的开源数据库。它不同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。HBase使用和 BigTable非常相同的数据模型。用户存储数据行在一个表里。一个数据行拥有一个可...

Pichairen 4319

Python爬虫实战:基于异步爬虫与机器学习的数据采集——以电商平台在线评论有用性分析为例

内容涵盖爬虫原理、反爬虫策略应对、数据清洗、数据存储以及简单的数据分析预览,并为后续利用机器学习模型(如逻辑回归、随机森林)分析评论有用性打下坚实的数据基础。特别是在电子商务领域,在线评论作为UGC的一种主要形式,深刻影响着消费者的购买决策和商家的信誉体系。然而,平台上的评论质量参差不齐,充斥着大量无意义的灌水、广告甚至虚假评论。因此,如何自动识别和筛选出“有用”的评论,成为了学术界和工业界共同关注的焦点。我们选择目前Python爬虫领域最前沿、效率最高的技术组合,以确保爬虫的稳定性、速度和可扩展性。

2201_76125261的博客 107

AI智算-K8s如何利用IB RDMA网络加速大模型分布式训练

在AI人工智能领域,大模型的微调是提升性能不可或缺的一环。通过结合InfiniBand RDMA网络的高速互联、Kubernetes的云原生容器化部署,以及智能算力调度平台,可以打造一个高效、灵活且可扩展的分布式训练环境。

Kason_iWiki 816

hadoop、hbase、hive、spark分布式系统架构原理

机器学习、数据挖掘等各种大数据处理都离不开各种开源分布式系统,hadoop用户分布式存储和map-reduce计算,spark用于分布式机器学习,hive是分布式数据库,hbase是分布式kv系统,看似互不相关的他们却都是基于相同的hdfs存储和yarn资源管理, hadoop、spark、Hbase、Hive、hdfs简介 Hbase:是一个nosql数据库,和mongodb类似 hdfs...

5万+

微信支付接口「系统繁忙 SYSTEM_ERROR」/「文件不存在」报错分析与解决方案 接口开发实现SDK

微信支付的“平台证书模式”只有5年的有效期,过期后微信支付将不再签发新的平台证书,转而要求开发者使用“微信支付公钥”来处理敏感信息加密及回调签名验证。然而,由于以下几点原因,许多开发者在调用 获取平台证书。尽管微信支付在技术迭代上有其必要性,但报错设计过于不友好。诸如“系统繁忙”这样的提示很难直接关联到平台证书失效或公钥切换问题。这样的信息表达,开发者不仅看不懂,还需要花费大量时间分析排查,非常影响效率。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 779

HBase快速入门系列(5) | Hbase原理

  此篇为大家带来的是Hbase的数据结构。 目录

不温卜火 8257

[系统安全] 十六.PE文件逆向基础知识(PE解析和PE编辑工具)

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~ 作者前面介绍了三个漏洞,包括Chrome浏览器保留密码渗透解析、通过Chrome浏

杨秀璋的专栏 1万+

Realtek千兆PHY RTL8211FS相关寄存器操作详解

通过合理配置和控制RTL8211FS寄存器,您可以实现对以太网的各种功能和参数的控制和配置。请注意,具体的寄存器操作和配置值可能因具体需求而有所不同,您应参考RTL8211FS芯片的数据手册以获取准确的寄存器说明和操作规范。我们将提供相应的源代码示例,以帮助您理解和实施这些操作。通过操作这些寄存器,我们可以配置和控制RTL8211FS芯片的各种功能和参数。需要注意的是,具体的寄存器操作和配置值会根据您的具体需求而有所不同。您需要参考RTL8211FS芯片的数据手册以获取详细的寄存器说明和操作规范。

RlDart的博客 2659

详解HBase架构原理

一、什么是HBase  HBase 是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群。   HBase 是Google Bigtable 的开源实现,与Google Bigtable 利用GFS作为其文件存储系统类似, HBase 利用HadoopHDFS 作为其文件存储系统;Google 运行MapRed...

Eddie-Wang的博客 1726

可疑物品遗留检测系统:基于YOLOv8的智能安防解决方案

数据采集与标注模块:负责收集和标注可疑物品图像数据模型训练模块:基于YOLOv8算法训练检测模型推理检测模块:加载训练好的模型进行实时检测用户界面模块:提供友好的操作界面和可视化结果展示报警模块:当检测到可疑物品时触发报警机制:包含多种暴力场景和可疑物品SUAVe:监控场景下的异常行为与物品数据集:包含多种可疑物品自建数据集:针对特定场景收集的数据背包(backpack)手提箱(suitcase)无人看管的包裹(package)可疑箱子(box)

YOLO 435

物联网架构之HBase

HBase是一个开源的、‌分布式的、‌可伸缩的、‌非关系型数据库,‌设计用来存储大量的数据表,‌这些数据表由行和列组成,‌非常适合存储非结构化和半结构化数据。‌HBase的名称来源于它是Hadoop Database的一个变种,‌用于构建在Hadoop Distributed File System (HDFS)之上,‌利用MapReduce进行数据处理。‌HBase的设计模仿了Google的BigTable系统,‌提供了高可靠性、‌高性能的数据存储服务。‌

Linux运维老纪的博客 1611

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

hbase架构原理

本篇文章主要从接方面介绍下hbase建构原理相关的内容; 一. 什么是hbase? HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价的PC Server上搭建大规模结构化存储集群。 HBase是Google BigTable的开源实现,与Google BigTable利用GFS作为其文件存储系统类似,HBase利用Hadoop HDFS作为其文件存储系统; Google运行MapReduce来处理BigTable中的海量数据,HBase同样利用Hadoop.

breakout_alex的博客 422

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HBase架构原理

一、什么是HBase HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价的PC Server上搭建大规模结构化存储集群。 HBase是Google BigTable的开源实现,与Google BigTable利用GFS作为其文件存储系统类似,HBase利用Hadoop HDFS作为其文件存储系统; Google运行M...

SmallCatBaby的博客 264

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

HBase架构和原理

HBase简介 分布式、可扩展的大数据存储 版本化的非关系数据库 随机访问,实时读/写 大表 - 数十亿行 乘以 百万列 面向列数据库 K-V 存储 HBase和Hadoop / HDFS有什么区别? HDFS是一种分布式文件系统,非常适合存储大型文件。它不是通用文件系统,并且不提供文件中的快速单个记录查找。HBase建立在HDFS之上,为大型表提供快速记录查找(和更新)。HBas...

cenjianteng的博客 1518

HBase系列(四)、HBase优化之RowKey 设计

上一篇中我们提到了HBase的读写原理,可以看出HBase是为写操作优化,更适合写多读少的场景,尤其是因为数据按列族和Region切分成一个个的StoreFile,在跨多文件查询数据的时候就会很慢。同时,由于Region切分策略,会让HFile出现数据倾斜的情况,因此我们在实际应用中首先要先设置预分区,指定HBase表有几个分区,每个分区内的RowKey范围,然后我们只要将RowKey的值尽可能均匀的放置在这些Region内即可。本篇我们就来介绍如何通过RowKey的设计提升HBase的读性能。

王义凯 的博客 1953

【大数据】HBase分布式数据库架构及原理

一、HBase的整体架构 1、Client客户端 Client是操作HBase集群的入口,对于管理类的操作,如表的增、删、改操纵,Client通过RPC与HMaster通信完成,对于表数据的读写操作,Client通过RPC与RegionServer交互,读写数据。 Client类型: HBase shell Java编程接口 Thrift、Avro、Rest等等 2、ZooKeeper集群 作用: 1、实现了HMaster的高可用,多HMaster间进行主备选举 2、保存了HBase的元数据信息meta

Chenftli的博客 2576

Hbase架构以及应用介绍

Hbase全称为Hadoop Database,即Hbase是Hadoop的数据库,是一个分布式的存储系统。Hbase利用Hadoop的HDFS作为其文件存储系统,利用Hadoop的MapReduce来处理Hbase中的海量数据。利用zookeeper作为其协调工具。 本篇文章将重点介绍Hbase三个方面的内容:Hbase体系结构(架构)的介绍、Hbase shell的操作、Hbase的Ja

什么最重要?算法!! 1万+
上一篇: HBase系列(一)、数据模型
下一篇: HBase系列(三)、读写原理,Flush刷写,HFile Compact合并,Region Split切分
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值