【大数据技术Hadoop+Spark】HBase分布式数据库架构、特点、数据存储方式、寻址机制详解(图文解释)

news2025/1/12 19:04:08

一、HBase简介

HBase起源于2006年Google发表的BigTable论文。HBase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库,利用HBase可在廉价PC服务器上搭建起大规模结构化存储集群。HBase的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。

二、HBase架构

HBase构建在Hadoop HDFS之上,Hadoop HDFS为HBase提供了高可靠的底层存储支持,Hadoop MapReduce为HBase提供高性能的计算能力,Zookeeper为HBase提供稳定服务和容错机制。HBase的整体架构如下所示。

主要节点及其作用如下图所示

 

 

 

 

 

 三、HBase的特点

1)容量巨大:单表可以有百亿行、数百万列。

2)无模式:同一个表的不同行可以有截然不同的列。

3)面向列:HBase是面向列的存储和权限控制,并支持列独立索引。

4)稀疏性:表可以设计得非常稀疏,值为空的列并不占用存储空间

5)扩展性:HBase底层文件存储依赖HDFS,它天生具备可扩展性

6)高可靠性:HBase提供了预写日志(WAL)和副本(Replication)机制,防止数据丢失

7)高性能:底层的LSM(Log-Structured Merge Tree)数据结构和Rowkey有序排列等架构上的独特设计,使得HBase具备非常高的写入性能。

四、HBase数据存储方式

Region在行方向上的存储方式

HBase表的数据按照行键RowKey的字典序进行排列,并且切分多个HRegion存储,存储方式如下所示。

 HRegion的切分方式

每个Region存储的数据是有限的,如果当Region增大到一个阀值(128)时,会被等分切成两个新的Region,切分方式如下所示。

 HRegion的分布方式

一个HRegion Server上可以存储多个Region,但是每个Region只能被分布到一个HRegion Server上,分布方式如下。

五、HBase寻址机制

当HBase表查询数据遵循的是寻址机制,接下来,通过一张图来学习一下HBase的寻址机制,具体如下所示。

Zookeeper中存储的是ROOT表的数据,而ROOT表中存储的是META表的Region信息,也就是所有RegionServer的地址。 

 六、HBase与传统数据库的区别

存储模式

传统数据库中是基于行存储的;而HBase是基于列进行存储的。

表字段

传统数据库中的表字段不超过30个;而HBase中表字段不作限制

可延伸性

传统数据库中的列是固定的,需要先确定列有多少才会增加数据去存储;而HBase是根据数据存储的大小去动态的增加列,列是不固定的。

创作不易 觉得有帮助请点赞关注收藏~~~

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

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

相关文章

如何去图片水印?三个方法让你学会图片去水印

上大学的时候,老师给我们每人布置了一个关于介绍“我的家乡”的作业。课后在做这个PPT的时候,我发现在网上找的图片素材都带着水印,十分影响PPT展示效果。于是,我就上网找了一些如何去图片水印的方法,对这些方法进行实…

[附源码]Nodejs计算机毕业设计基于的宿舍楼跳蚤市场管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

logrotate 详解

logrotate 程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。下面就对 logrotate 日志轮转操作做一梳理记录。 1、配置文件介绍 Linux系统默认安装logrotate工具&am…

PAT乙级 1084 外观数列 python

题目 思路: 需要注意的点: 只有相邻的字符相同,才统计这个字符出现的次数 利用before作为后一个字符是否与前一个字符相同 进行字符的重复次数统计标志 另: 我发现用下列形式最后一个测试点就会超时 resultresultstr(count) j改…

12.16

为什么使用promise 一.指定回调函数的方式更加灵活 1. 旧的: 必须在启动异步任务前指定 2. promise: 启动异步任务 > 返回promie对象 > 给promise对象绑定回调函 数(甚至可以在异步任务结束后指定/多个) 二. 支持链式调用, 可以解决回调地狱问题 1. 什么是回调地狱?…

90后世界五百强新青年,每年沪漂8个月,长住7天酒店,如何做到不焦虑不躺平?

疫情三年,使许多行业与从业者陷入胶着的困境。特别是身处互联网时代的我们,每天不断接收大量信息,情绪极易被干扰,陷入现实与幻想的拉扯之中。996、内卷、emo、躺平、摆烂等网络热词层出不穷,展现了Z时代青年迷茫、敏感…

MySQL --- 函数大全 6

目录 1.结果集的分区中的每一行分配一个连续的整数 ROW_NUMBER() 2.将字符串追加到指定的数量 RPAD() 3.删除尾随空格 RTRIM() 4.将秒转换为“hh:mm:ss”格式 SEC_TO_TIME() 5.返回指定时间或日期时间值的第二部分 …

预训练时候 Pytorch FrozenBatchNorm (BN)一些小心得

在预训练模型中 会发现 这样使用: # resnet model builder function def build_resnet(archresnet50, pretrainedTrue,freeze_backbone_batchnormTrue, freeze_layer1True,norm_layermisc_nn_ops.FrozenBatchNorm2d):# weightsif pretrained: #如果是预训练 权重是…

Blazorise NumericPicker、DragDrop和Datagrid组件

Blazorise NumericPicker、DragDrop和Datagrid组件 添加了在“BaseAfterRenderComponent”中实现延迟执行的功能。 NumericPicker:现在可以检查大数值。 改进了DragDrop组件。 数据网格:引入了“CancellationTokenSource”和相应的过滤器更改取消选项。 …

通信原理Simulink使用经验

目录 一、如何将Simulink模型文件导出为PDF ​二、如何将模型文件导出为高清位图 三、如何调整鼠标滚轮为上下移动 四、如何控制页面的位置 五、如何得到Scope示波器仿真波形的位图 六、如何修改Scope波形的视图 一、如何将Simulink模型文件导出为PDF 确认此处的打印就可…

2022软考高级架构设计师-经历分享

一.背景 软考全称为【计算机技术与软件专业技术资格(水平)考试】,是由国家人力资源和社会保障部(原人事部)、工业和信息化部(原信息产业部)领导,全国计算机软件考试办公室负责实施和日常管理的对全国计算机与软件专业技术人员进行的职业资格、…

发烧友实测 | 用飞凌OKA40i-C开发板玩转FFmpeg

本篇试用报告由发烧友 zealsoft提供,感谢 zealsoft的支持。飞凌嵌入式会在电子发烧友和电路城论坛持续开展开发板有奖试用活动,更有京东E卡等着你!欢迎大家的持续关注。1. FFmpeg的安装 FFmpeg是用来记录、转换数字音频、视频的开源软件&…

python作业大教学:制作员工管理系统

前言 大家早好、午好、晚好吖 ❤ ~ 环境使用: Python 3.8 Pycharm 功能需求 “”" 创建员工类:属性有:员工号,员工姓名,员工工资; 创建用户类:属性有:用户名,密码&#x…

Excel插件E灵:按家庭建表,创建一户一表。将明细表转成一户一表

单击播放视频: 教你将Excel明细表转换成一户一表,即按家庭创建新表01需求概述 图1是档案明细表,图2是家庭收入采集表的模板样式。现要求将明细表转换成家庭收入采集表,有几个家庭就生成几份单独的采集表。 图1 档案明细表 图2 家…

玩游戏蓝牙耳机哪款好?适合打游戏的无线蓝牙耳机推荐

随着蓝牙耳机越来越受欢迎,喜欢戴蓝牙耳机玩游戏的人也越来越多,特别是近几年随着技术不断地升级,支持低延迟、能听声辨位的游戏蓝牙耳机逐渐火热起来。今天在这里给大家分享几款适合打游戏的无线蓝牙耳机,一起来看看吧。 一、南…

神舟战神z7使用U盘重装系统操作教程分享

神舟战神z7使用U盘重装系统操作教程分享。有用户使用神舟战神z7笔记本电脑的时候安装了一个程序导致了电脑中毒,系统出现了损坏,无法正常的使用。今天教你如何通过U盘重装系统的方法来进行系统的重置,恢复正常的电脑使用。 准备工作&#xff…

复杂度分析

算法 如何评估一个算法的好坏?(事后统计法的应用) 在同一个问题上 比较不同算法对于同一输入的执行时间 事后统计法的缺点 1.严重依赖硬件以及运行时各种不确定因素(比如cpu好一点的效率就高一点) 2.必须编写相应的测试代码 3.测试时输入的数据难以保证公平性…

【数据挖掘机器学习】招聘网站的职位招聘数据的分位数图、分位数-分位数图以及散点图、使用线性回归算法拟合散点图处理详解

文章目录一.本次需求背景二.职位招聘数据的分位数图、分位数-分位数图三.使用散点图、使用线性回归算法拟合散点图处理数据一.本次需求背景 本文主题:招聘网站的职位招聘数据的分位数图、分位数-分位数图以及散点图、使用线性回归算法拟合散点图处理详解 之前的文…

《Python多人游戏项目实战》第三节 在窗口上显示玩家ID以及对话内容

目录 3.1 显示不同的人物图片 3.2 显示玩家ID 3.3 显示玩家对话内容 3.4 完整代码下载地址 本节只是在上一节内容的基础上加一些小功能:显示不同的人物图片、在人物头顶上显示玩家ID以及人物头顶上显示一个聊天对话框。大家可以把这一节内容当做一个过渡&#x…

【OpenCV-Python】教程:6-2 Pose Estimation (姿态估计)

OpenCV Python Pose Estimation (姿态估计) 【目标】 利用calib3d模块在图像中创建一些3D效果。 【理论】 这是一小部分。在上一节中,已经找到了摄像机矩阵,失真系数等。给定一个图案图像,我们可以利用上面的信息来计算它的姿态&#xff…