Hbase文档--架构体系

news2025/4/7 0:20:49

阿丹:

        基础概念了解之后了解目标知识的架构体系,就能事半功倍。

架构体系

 关键组件介绍:

        HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

        与FUJITSU Cliq等商用大数据产品不同,HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

        描述Hadoop EcoSystem中的各层系统。其中,HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。

        此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便

HBase是一个分布式的、面向列的NoSQL数据库,它构建在Hadoop之上。HBase的架构体系主要包括以下几个组件:

  1. HMaster: HMaster是HBase集群中的主节点,负责管理整个集群和协调各个RegionServer。它负责分配和管理Region(表的分区)以及处理客户端的请求。

  2. RegionServer: RegionServer是HBase的工作节点,它负责实际存储和处理数据。每个RegionServer负责多个Region的管理和服务,并处理客户端的读写请求。

  3. ZooKeeper: ZooKeeper是HBase的协调服务,用于管理和协调HBase集群中的各个组件和任务。它负责监控节点的状态、维护集群配置信息和协调分布式锁等。

  4. HDFS(Hadoop分布式文件系统): HBase使用HDFS作为其底层存储文件系统,用于持久化数据和存储表的Region。数据以块(Block)的形式分布在HDFS集群中。

  5. 表和Region: HBase中的数据组织在表中,每个表可以由一个或多个Region组成,每个Region负责表中一部分数据的存储和处理。Region通过分区键进行划分,不同的行数据根据分区键进行垂直分布。

  6. 客户端: HBase提供了Java API供客户端使用,客户端可以通过API与HBase集群进行交互,进行数据的读写操作。

这些组件共同构成了HBase的架构体系,实现了可扩展的、分布式存储和处理大规模数据的能力。

图片中的组件说明: 

reginserver:本地服务器

hdfs:是hbase:运行的底层文件系统。

regionserver:理解为数据节点,存储数据

master regionserver要实时向master报告信息。master知道全局的regionserver运行情况,可以控制regionserver的故障转移和region的切分。

结构细化图:

存储设计:

        

在Hbase中,表被分割成多个更小的块然后分散的存储在不同的服务器上,这些小块叫做Regions,存放Regions的地方叫做RegionServer。Master进程负责处理不同的RegionServer之间的Region的分发。在Hbase实现中HRegionServer和HRegion类代表RegionServer和Region。HRegionServer除了包含一些HRegions之外,还处理两种类型的文件用于数据存储

  • HLog, 预写日志文件,也叫做WAL(write-ahead log)
  • HFile 真实的数据存储文件
HLog
  • MasterProcWAL:HMaster记录管理操作,比如解决冲突的服务器,表创建和其它DDLs等操作到它的WAL文件中,这个WALs存储在MasterProcWALs目录下,它不像RegionServer的WALs,HMaster的WAL也支持弹性操作,就是如果Master服务器挂了,其它的Master接管的时候继续操作这个文件。

  • WAL记录所有的Hbase数据改变,如果一个RegionServer在MemStore进行FLush的时候挂掉了,WAL可以保证数据的改变被应用到。如果写WAL失败了,那么修改数据的完整操作就是失败的。

    • 通常情况,每个RegionServer只有一个WAL实例。在2.0之前,WAL的实现叫做HLog
    • WAL位于/hbase/WALs/目录下
    • MultiWAL: 如果每个RegionServer只有一个WAL,由于HDFS必须是连续的,导致必须写WAL连续的,然后出现性能问题。MultiWAL可以让RegionServer同时写多个WAL并行的,通过HDFS底层的多管道,最终提升总的吞吐量,但是不会提升单个Region的吞吐量。
HFile

HFile是Hbase在HDFS中存储数据的格式,它包含多层的索引,这样在Hbase检索数据的时候就不用完全的加载整个文件。索引的大小(keys的大小,数据量的大小)影响block的大小,在大数据集的情况下,block的大小设置为每个RegionServer 1GB也是常见的。

探讨数据库的数据存储方式,其实就是探讨数据如何在磁盘上进行有效的组织。因为我们通常以如何高效读取和消费数据为目的,而不是数据存储本身。

Hfile生成方式

起初,HFile中并没有任何Block,数据还存在于MemStore中。

Flush发生时,创建HFile Writer,第一个空的Data Block出现,初始化后的Data Block中为Header部分预留了空间,Header部分用来存放一个Data Block的元数据信息。

而后,位于MemStore中的KeyValues被一个个append到位于内存中的第一个Data Block中:

:如果配置了Data Block Encoding,则会在Append KeyValue的时候进行同步编码,编码后的数据不再是单纯的KeyValue模式。Data Block Encoding是HBase为了降低KeyValue结构性膨胀而提供的内部编码机制。

 读写简单流程

 

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

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

相关文章

vue3 vite使用 monaco-editor 报错

报错:Unexpected usage at EditorSimpleWorker.loadForeignModule 修改配置: "monaco-editor-webpack-plugin": "^4.2.0",删除不用 版本: "monaco-editor": "^0.28.1", 修改如下: opti…

Python“牵手”虾皮(Shopee)商品详情API接口运用场景及功能介绍,虾皮API接口申请指南

虾皮(Shopee)电商API接口是针对虾皮提供的电商服务平台,为开发人员提供了简单、可靠的技术来与虾皮电商平台进行数据交互,实现一系列开发、管理和营销等操作。其中包括商品详情API接口,通过这个API接口商家可以获取商品…

SLS日志解析配置

分隔符模式 INFO|2023-04-10T11:05:30.12808:00|X.X.X.X|ACCESS_ALLOWED|1 模式:分隔符模式 日志样例:贴文档说明中的样例,或者直接在SLS历史日志里找一行 分隔符:竖线 日志抽取内容Key用文档中说明的变量名 是否接受部分字段&am…

CMIP6中的模式比较计划、CMIP6数据下载、单点降尺度、统计方法的区域降尺度、基于WRF模式的动力降尺度及气候变化、生态、水文等典型案例

CMIP6数据被广泛应用于全球和地区的气候变化研究、极端天气和气候事件研究、气候变化影响和风险评估、气候变化的不确定性研究、气候反馈和敏感性研究以及气候政策和决策支持等多个领域。这些数据为我们理解和预测气候变化,评估气候变化的影响和风险,以及…

Docker容器与虚拟化技术:Harbor私有仓库部署与迁移

目录 一、理论 1.本地私有仓库 2.Harbor 二、实验 1.Docker搭建本地私有仓库 2.docker-compose部署及配置 3.harbor部署及配置 4.登录创建项目 5.在其他客户端上传镜像 6. harbor维护 7.移除 Harbor 服务容器同时保留镜像数据/数据库,并进行迁移 三、问题…

把Android手机变成电脑摄像头

一、使用 DroidCam 使用 DroidCam,你可以将手机作为电脑摄像头和麦克风。一则省钱,二则可以在紧急情况下使用,比如要在电脑端参加一个紧急会议,但电脑却没有摄像头和麦克风。 DroidCam 的安卓端分为免费的 DroidCam 版和收费的 …

服务器数据恢复-服务器RAID6硬盘故障离线的数据恢复案例

服务器数据恢复环境: 服务器中有一组由6块磁盘组建的RAID6磁盘阵列。服务器作为WEB服务器使用,上面运行了MYSQL数据库以及存放了网站代码和其他数据文件。 服务器故障: 在服务器运行过程中该raid6阵列中有两块磁盘先后离线,但是管…

火山引擎DataLeap基于Apache Atlas自研异步消息处理框架

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 字节数据中台DataLeap的Data Catalog系统通过接收MQ中的近实时消息来同步部分元数据。Apache Atlas对于实时消息的消费处理不满足性能要求,内部使用Flin…

Mysql索引、事务与存储引擎 (索引)

一、索引 1、索引的概念: 索引就是一种帮助系统能够更加快速的查找信息的数据结构。 2.索引的作用: ①数据库利用各种快速定位技术,能够大大加快查询速度,这是创建索引的最主要的原因。 ②当表很大或查询涉及到多个表时&#xff0…

Linux安装软件每次靠百度,这次花了些时间,终于算是搞明白了

Linux下安装命令虽然经常使用,但也仅仅是会使用,每次再用时依然的百度 。于是就花了些时间整体的梳理了一番,以便于更好的理解。 1.安装流程介绍 在Linux下安装软件,其实也是遵循着和Windows一样的安装流程。 首先,…

巨人互动|Facebook海外户Facebook游戏全球发布实用策略

Facebook是全球最大的社交媒体平台之一,拥有庞大的用户基数和广阔的市场。对于游戏开发商而言,利用Facebook进行全球发布是一项重要的策略。下面小编将介绍一些实用的策略帮助开发商在Facebook上进行游戏全球发布。 巨人互动|Facebook海外户&Faceboo…

淘宝API技术解析,实现按图搜索淘宝商品

淘宝提供了开放平台接口(API)来实现按图搜索淘宝商品的功能。您可以通过以下步骤来实现: 1. 获取开放平台的访问权限:首先,您需要在淘宝开放平台创建一个应用,获取访问淘宝API的权限。具体的申请步骤和要求…

1.6 服务器处理客户端请求

客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果)。 从图中我们可以看出,服务器程序处理来自客户端的查询请求大致需要经过三个部分,分别…

前端需要理解的 React 知识

1 框架通识 1.1 MVVM、MVC和MVP MVC、MVP 和 MVVM 是三种常见的软件架构设计模式。主要通过分离关注点的方式来组织代码结构,优化开发效率。 MVC将应用抽象为数据层(Model)、视图层(View)、逻辑层(contr…

解锁Selenium的力量:不仅仅是Web测试

Selenium简介 Selenium,作为Web应用测试的领军者,已经成为了无数开发者和测试人员的首选工具。它不仅仅是一个自动化测试工具,更是一个强大的Web应用交互框架。 Selenium的起源与发展 Selenium的历史可以追溯到2004年,由Jason Hu…

二叉树、红黑树、B树、B+树

二叉树 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。 二叉树的特点: 每个结点最多有两棵子树,即二叉树不存在度大于2的结点。二叉树的子树有左右之分&#xf…

【算法刷题之哈希表(2)】

目录 1.leetcode-454. 四数相加 II2.leetcode-383. 赎金信(1)暴力解法(2)哈希法 3.leetcode-205. 同构字符串(1)哈希法(2)直接对比查找 4.leetcode-128. 最长连续序列5.总结 1.leetc…

抖音小程序商城开发制作源码 含多套模板+部署搭建教程

分享一个抖音小程序商城的制作源码,含多套模板、模块化自由DIY功能和完整的搭建部署教程。程序支持除抖音小程序商城制作外,还支持一键同步微信、支付宝、百度、今日头条端小程序。 抖音小程序商城的基本架构包括前端页面和后端管理平台两部分。前端页面…

【FPGA】FPGA入门 —— 基本开发流程

FPGA入门 1. FPGA入门2. FPGA开发流程3. 二选一多路器 - 快速熟悉开发环境及流程 1. FPGA入门 快速上手verilog语法状态机,线性序列机FPGA常见的设计方法自己写代码,下载代码进行使用,使用厂家/第三方提供的IP核常见接口设计 等等。。 学习…

白介素对NK细胞功能的影响(IL-1β、IL-12、IL-15、IL-18、IL-21)

1、促进NK细胞扩增和活化:IL-2/21 Soiffer RJ等自1996年起即报道IL-2低剂量持续输注和间歇给药对转移癌患者的CD56NK细胞有明显扩增效果。大部分NK细胞表面具有IL-2中亲和性受体,IL-2诱导NK的杀伤活性约需18~24小时。此外,IL-2还…