【大数据学习 | HBASE】hbase的原理与组成结构

1. hbase的简述

hbase作为google的大数据三篇比较重要的论文之一,它的起源叫做bigtable,意思非常简单就是大表的意思,是一个分布式存储很多数据的大型表格系统,它是对于hdfs中的数据不能直观查询和随机读写的病痛的一个补充和完善。

hdfs中的数据是整存整去的数据体,按照128M进行拆分然后分布式存储,我们之前学过这个组件,hdfs能够很好的保证数据的稳定性和读取存储的高性能,同时具有很强的可靠性,但是这个数据只能整体的存储和读取使用,如果我们存储一堆重要的文件信息,想要读取其中某一条数据,或者修改其中的一个值或者删除一行内容是完全做不到的,比如读取我们需要整体进行读取,然后过滤出来我们想要的数据,假如数据是1T大小,我们只想要一行内容也需要将1T全部读取出来然后进行过滤,这个是非常低性能的,完全不能保证在大数据场景中的实时效果,而且完全不支持修改数据,想要修改数据必须要将数据全部都读取出来然后修改整个数据然后在重新存储到hdfs中,所以hdfs中的数据更像是一个仓库,里面非常粗粒度不能保证灵活性,至此hbase出现了。

hbase并不提供数据存储,而是借助于hdfs进行数据存储,在这个基础之上实现了上层架构的一个管理和封装,它更像是一个给予内存的hdfs的管理组件,类比生活中更像是一个售卖柜台和一个商场的仓库的关系,柜台更加灵活的进行商品的售卖和购买,仓库中只是作为大量商品的存储,比较重量级和固定。

2. hbase的原理

那么hbase是怎么进行hdfs上层管理的呢???

hbase首先是hdfs上层的一个管理层,hbase自身是带有元数据信息的,用来记录我们在hbase中创建了多少个表,并且每个表存在多少个列,这样就可以实现表格级别的使用和管理,并且会将表格的数据放入到hdfs中存储,为了方便查询和管理会按照表的列进行文件的存储和分类,比如info列就会存储到一个单独的hfile文件中,但是hbase中存储的数据会非常的多,那么一个列单独保存在一个hfile中,也是难管理和查询的,所以按照行级别进行数据的分割存储到不同的文件中,这样可以非常快速的检索出来数据,但是不能够解决掉数据的修改问题,因为底层是hdfs的存储,这样是没有办法灵活修改和变化的,这个时候hbase引入了一块内存区域会将数据的修改和插入放入到内存中,一旦缓存区中的数据满了,那么就会将数据存储到hdfs中并且对数据进行修改和合并操作,能够保证灵活的数据修改,并且通过图中我们可以发现数据是按照列为一个整体进行存储的,所以查询效率会更高,大数据场景中存储的数据会存在很多列,那么我们只需要其中的两列就可以直接去相应的hfile中读取数据,不需要全部的hfile文件都扫描读取,从而实现灵活的数据随机读写。

3. hbase的组成结构

hbase中的数据是存储到hdfs中的,但是hbase要管理hdfs中数据的元数据信息,并且对插入和修改的数据进行处理,在大数据场景中首先数据量会很大,而且表也会非常的多,那么hbase管理起来压力也会非常的大,所以hbase也是分布式的,多个机器共同分摊表数据的管理压力。

所以hbase中会存在很多个节点组件进行管理,首当其冲的就是hregionserver管理每个节点的数据,每个列的数据存储和hfile文件的管理,一般这些节点都会和hdfs的datanode节点部署到一起,hmaster主要是通过zookeeper对多个regionserver进行管理,并且管理整个集群中的元数据信息文件,为了防止hbase的Hmaster主节点的单机故障问题,使用zookeeper进行协调选举服务保证多个hmaster下的集群稳定问题。

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

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

相关文章

苍穹外卖Bug集合

初始化后端项目运行出现以下问题 以上报错是因为maven和jdk版本不符合,需要将jdk改成17,mavne改成3.9.9

【C++篇】在秩序与混沌的交响乐中: STL之map容器的哲学探寻

文章目录 C map 容器详解:高效存储与快速查找前言第一章:C map 的概念1.1 map 的定义1.2 map 的特点 第二章:map 的构造方法2.1 常见构造函数2.1.1 示例:不同构造方法 2.2 相关文档 第三章:map 的常用操作3.1 插入操作…

太空旅游:科技能否让星辰大海变为现实?

内容概要 在这个快速变化的时代,太空旅游成为了一个让人热血沸腾的话题。想象一下,坐在一颗漂浮的太空舱里,手中端着饮料,眺望着无尽的星辰大海,简直就像科幻电影中的情节一样。不过,这不仅仅是一个空洞的…

程序中怎样用最简单方法实现写excel文档

很多开发语言都能找到excel文档读写的库,但是在资源极其受限的环境下开发,引入这些库会带来兼容性问题。因为一个小功能引入一堆库,我始终觉得划不来。看到有项目引用的jar包有一百多个,看着头麻,根本搞不清谁依赖谁。…

R 环境安装

R 环境安装 R 是一种广泛使用的统计软件和编程语言,特别适合用于数据分析和可视化。在开始使用 R 进行数据分析之前,您需要在自己的计算机上安装 R 环境。本文将详细介绍如何在不同的操作系统上安装 R,并配置必要的组件以开始您的数据分析之旅。 1. Windows 系统上的 R 安…

本地缓存与 Redis:为什么我们仍然需要本地缓存?

文章目录 本地缓存与 Redis:为何仍需本地缓存?为什么需要本地缓存?多级缓存架构多级缓存的实现 本地缓存的实现方式使用 cachetools 实现 LRUCache使用 diskcache 实现持久化缓存 缓存装饰器实现进一步优化:缓存失效与更新 小结 好…

【春秋云镜】CVE-2023-23752

目录 CVE-2023-23752漏洞细节漏洞利用示例修复建议 春秋云镜:解法一:解法二: CVE-2023-23752 是一个影响 Joomla CMS 的未授权路径遍历漏洞。该漏洞出现在 Joomla 4.0.0 至 4.2.7 版本中,允许未经认证的远程攻击者通过特定 API 端…

解决虚拟机启动报:此主机支持AMD-V,但AMD-V处于禁用状态

首先要知道你自己使用的主板型号,如果是京东购买的,可以直接上京东去问客服。如果没有订单号,如果能提供正确的主板型号,他们应该也是会帮忙解答的。 您好,AMD 平台与 Intel 平台以及部分新老主板开启虚拟化的步骤和细…

SYN Flood , DDos攻击以及防护措施

目录 1 SYN Flood 2 直接攻击 3 伪造源攻击(IP欺骗) 4 分布式服务拒绝式攻击(DDos) -- SYN Flood 1 部署 Anti-DDos 服务(源认证首包丢弃) 2 SYN Cookie 技术 5 分布式服务拒绝是攻击(DDos) -- 应用层 1 SYN Flood SYN Flood 就是SYN洪水攻击,他是利用TC…

【EI会议推荐】抢先掌握学术前沿!快来参加EI学术会议投稿,展示你的研究成果,开启科研新高度!

【EI会议推荐】抢先掌握学术前沿!快来参加EI学术会议投稿,展示你的研究成果,开启科研新高度! 【EI会议推荐】抢先掌握学术前沿!快来参加EI学术会议投稿,展示你的研究成果,开启科研新高度&#…

2.若依vue表格数据根据不同状态显示不同颜色style

例如国标显示蓝色&#xff0c;超标是红色 使用是蓝色&#xff0c;未使用是绿色 <el-table-column label"外卖配送是否完成评价" align"center" prop"isOverFlag"> <template slot-scope"scope"> …

Java基础-内部类与异常处理

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 一、Java 内部类 什么是内部类&#xff1f; 使用内部类的优点 访问局部变量的限制 内部类和继承 内部…

[代码随想录打卡Day7] 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

454.四数相加 思路&#xff1a;没有去重问题&#xff0c;使用化解法。先对a,b两个数组进行双层for循环遍历得到所有的ab的值保存到map中&#xff0c;key是ab的值&#xff0c;value存储出现的次数&#xff0c;然后双层for循环遍历c,d&#xff0c;查找0-(cd)是否在map中&#xf…

【系统架构设计师】2022年真题论文: 论区块链技术及应用(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2022年 试题3)解题思路区块链技术原理区块链技术的关键特性区块链技术的应用领域论文素材参考真题题目(2022年 试题3) 区块链作为一种分布式记账技术,目前已经被应用到了资产管理、物联网、医疗管理…

Kubernetes(K8s)相关漏洞介绍

Kubernetes&#xff08;K8s&#xff09;是一个开源的容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序。然而&#xff0c;像任何复杂的软件系统一样&#xff0c;Kubernetes也存在一些安全漏洞。以下是一些已知的Kubernetes安全漏洞&#xff1a; Kubernetes镜…

C# 常用的测试框架合集

在 C# 开发中&#xff0c;拥有强大的测试框架是确保代码质量和稳定性的关键。本文将介绍一些 C# 中常用的测试框架&#xff0c;帮助你更好地进行单元测试、集成测试等各类测试工作。 一、NUnit 简介 NUnit 是一个广泛使用的开源测试框架&#xff0c;专为.NET 平台设计。它提供…

Obsidian vs Typora

引言 近来几日&#xff0c;自己也算是用了一段时间的Obsidian了&#xff0c;也是有资格来说一下使用感受了。当前感觉是自己未来很长一段时间将会一直使用Obsidian了。 Typora vs Obsidian Typora 优点 整体好看&#xff0c;简洁&#xff0c;所见即所得 缺点&#xff1a;…

Java 基于SpringBoot+Vue 的公交智能化系统,附源码、文档

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Spring Boot开发入门教程

简介 Spring Boot是一个开源的Java基础框架&#xff0c;用于创建独立、生产级的基于Spring框架的应用程序。通过Spring Boot&#xff0c;你可以轻松地创建独立的、生产级的Spring应用程序。 环境准备 Java开发环境&#xff1a;确保你的机器上安装了Java 8或更高版本。Maven…