大数据学习(105)-Hbase

🍋🍋大数据学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


HBase简介

HBase是一个基于Hadoop的分布式、可扩展、支持大数据存储的数据库。

使用场景:需要随机或实时读写大数据的场景

目标:支持数十亿行和数百万列的大表

底层技术对应关系:

分布式列存储BigTableHBase(基于Hadoop)BigTable是Google的分布式列存储系统,HBase是其开源实现,提供稀疏多维映射表。
分布式文件系统GFS(Google File System)HDFS(Hadoop Distributed File System)GFS是Google的早期分布式文件系统,HDFS是其开源版本,支持大规模数据存储。
海量数据处理框架MapReduceHadoop MapReduceMapReduce是Google提出的分布式计算模型,Hadoop MapReduce是其开源实现。
分布式协同服务管理ChubbyZookeeperChubby是Google的分布式锁服务,Zookeeper是其开源实现,用于协调分布式系统。

数据模型

HBase采用表来组织数据,采用命名空间(NameSpace)对表进行逻辑分组。

NameSpace: 命名空间,类似于mysql中的database,默认有default和hbase,用户表默认在default中

表:HBase采用表来组织数据,表由行和列组成,列划分为若干个列族。

行:每个HBase表都由若干行组成,每个行由可排序的**行键(row key)**来标识。

列:采用列族:列限定符的形式确定具体的一列。

列族:一个HBase表被分组成许多“**列族”(Column Family)**的集合,它是基本的访问控制单元。列族可以动态添加,但在定义表时需要指定至少一个列族,在使用某个列族时要事先定义。
列限定符:表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多个列,同一个列族里面的数据存储在一起。列族里的数据通过**“列限定符”(Column qualifier)**来定位。
单元格:在HBase表中,通过行、列族和列限定符确定一个“单元格”(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte[],所以在定义表时无需定义数据的类型,使用时用户需要自行进行数据类型转换。

时间戳:每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引, HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关的)

HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳,在进行数据存储的时,其采用key-value形式:Table + RowKey(升序) + ColumnFamily + Column + Timestamp --> Value

系统架构

HBase采用主从结构设计,基础存储依赖于HDFS,协调服务依赖于Zookeeper集群,HMaster负责HBase的管理操作,HRegionServer负责数据的相关操作。

客户端(Client)

客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程。

对于管理类操作,Client与HMaster进行RPC

对于数据读写操作,Client与HRegion Server进行RPC

Zookeeper服务器

Zookeeper是Chubby算法的一种开源实现

  1. 保证任何时候,集群中只有一个活跃的master,因为为了保证安全性会启动多个Master
  2. 存储所有Region的寻址入口
  3. 实时监控Region Server的状态,将Region Server的上下线的信息汇报给HMaster。
  4. 存储Hbase的元数据(Schema)包括,知道整个Hbase集群中有哪些Table,每个 Table 有哪些column family(列族)

Master服务器

主服务器主要负责表和Region的管理工作, 其实现类为 HMaste :

  • 对于表的操作:create, delete, alter
  • 对于 RegionServer 的操作:
  1. 实现不同Region服务器之间的负载均衡
  2. 在Region分裂或合并后,负责重新调整Region的分布
  3. 对发生故障失效的Region服务器上的Region进行迁移

Region服务器

Region服务器是HBase中最核心的模块,维护Master分配给他的 Region ,其实现类为 HRegionServer ,主要组成如下:

  • 一个Region服务器包含多个Region,这些Region共用一个HLog文件
  • Region由一个或者多个Store组成,每个Store保存一个 Columns Family。
  • 每个Strore又由一个MemStore和0至多个StoreFile组成。
  • MemStore存储在内存中,StoreFile存储在HDFS
  • StoreFile的底层实现是HFile

主要作用如下:

  1. 对于数据的操作:get, put, delete
  2. 对于 Region 的操作:splitRegion、compactRegion

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

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

相关文章

【数学建模】

全国大学生数学建模竞赛(CUMCM)历年试题速浏(查看超级方便)_全国大学生数学建模竞赛真题-CSDN博客 高教社杯全国大学生数学建模竞赛历年赛题(含解析、评阅) - 赛氪教育 年份 赛题 真题 问题类型 对应算法及模型 2023年 A题 定日镜场的优化设计 …

【Python语言基础】18、多态

文章目录 1. 多态1.1 什么是多态1.2 多态实现方式1.3 多态的好处1.4 多态的好处1.5 不同层面的理解1.6 多态的优缺点 1. 多态 在 Python 里,多态是一种非常有用的编程特性,它能让你以统一的方式处理不同类型的对象 1.1 什么是多态 多态就好比在生活中…

AI多模态论文解读:OmniCaptioner:多领域视觉描述生成框架(附脑图)

AIGCmagic社区知识星球是国内首个以AIGC全栈技术与商业变现为主线的学习交流平台,涉及AI绘画、AI视频、大模型、AI多模态、数字人以及全行业AIGC赋能等100应用方向。星球内部包含海量学习资源、专业问答、前沿资讯、内推招聘、AI课程、AIGC模型、AIGC数据集和源码等…

Spring IoC深度解析:掌控Bean存储艺术与分层架构的智慧​​

一、IoC的本质:从"造物主"到"使用者"的思维跃迁 在传统编程中,开发者像"造物主"一样亲手创建每个对象(new UserController()),并管理它们的依赖关系。这种方式导致代码高度耦合&#xf…

ubuntu22.04下安装mysql以及mysql-workbench

一、mysql安装以及配置 安装之前先查看是否已将安装mysql: rpm -qa | grep mysql (一)、在线安装 保证网络正常的情况下: 1、更新软件包: sudo apt update 2、安装mysql安装包 查看可以安装的安装包: sudo apt search mysql-server 安装指定安装包: sudo apt i…

第二届数字图像处理与计算机应用国际学术会议(DIPCA 2025)

重要信息 时间:2025年4月25-27日 地点:中国-西安 官网:www.icipca.net(了解详情) 部分展示 征稿主题 包括但不限于: 图像处理:模式识别、计算机视觉、低级视觉和图像处理、光学技术在图像中的…

【后端开发】Spring MVC阶段总结

文章目录 快捷引入依赖lombok的使用Lombok依赖Lombok使用Lombok注解 三层架构分层的目的MVC与分层的区别三层架构分层的好处 企业命名规范常见命名命名风格介绍大驼峰风格小驼峰风格包名 常见注解Cookie与Session 快捷引入依赖 这个方法可以快捷引入依赖,但是引入依…

FastAPI依赖注入系统及调试技巧

title: FastAPI依赖注入系统及调试技巧 date: 2025/04/11 15:00:50 updated: 2025/04/11 15:00:50 author: cmdragon excerpt: FastAPI的依赖注入系统采用树状结构管理依赖关系,自动解析并执行依赖项。复杂依赖关系可能导致循环依赖、性能问题、逻辑错误和调试困难。使用Fa…

DeepSeek赋能!企业私有化知识库3大搭建方案拆解

最近公司要搭建一个私有化的知识库,通过对比分析,发现企业级私有化知识库搭建有多种方案选型,今天就分享下这几种企业私有化知识库搭建方案。 一、为何选择本地部署? 这个分个人还是企业,如果个人用,其实各…

对称加密与非对称加密与消息摘要算法保证https的数据交互的完整性和保密性

一、对称加密与非对称加密的作用 1. 对称加密 作用: 保密性:对称加密使用相同的密钥对数据进行加密和解密,确保数据在传输过程中不被窃听。效率:对称加密算法(如AES)计算速度快,适合加密大量数…

程序化广告行业(76/89):行业融资全景剖析与代码应用拓展

程序化广告行业(76/89):行业融资全景剖析与代码应用拓展 大家好!在之前的文章里,咱们一起了解了程序化广告行业的发展趋势以及PC端和移动端投放的差异。今天,咱们接着深入学习,这次聚焦在程序化…

两个树莓派如何通过wifi direct传输视频并显示

这里写自定义目录标题 在两台设备上安装必要软件Wi-Fi Direct接收端IP(自动发现或静态设置)设置摄像头参数显示初始化网络设置 系统架构概述 发送端树莓派:捕获视频(摄像头或视频文件)→ 编码 → 通过Wi-Fi Direct传输…

ubuntu22.04安装ROS2 humble

参考: https://zhuanlan.zhihu.com/p/702727186 前言: 笔记本安装了ubuntu20.04安装ros一直失败,于是将系统升级为ununut22.04,然后安装ros,根据上面的教程,目前看来是有可能成功的。 系统升级为ununut…

Python 类型转换详解

文章目录 Python 类型转换详解基本类型转换函数1. 转换为整数 (int())2. 转换为浮点数 (float())3. 转换为字符串 (str())4. 转换为布尔值 (bool()) 容器类型转换1. 转换为列表 (list())2. 转换为元组 (tuple())3. 转换为集合 (set())4. 转换为字典 (dict()) 特殊类型转换1. AS…

【Python Requests 库详解】

目录 简介一、安装与导入安装导入 二、发送 HTTP 请求1. GET 请求基本请求URL 参数 2. POST 请求表单数据提交JSON 数据提交文件上传 3. 其他方法PUT 请求示例DELETE 请求示例 三、处理响应1. 响应内容解析文本内容处理二进制内容处理JSON 数据处理 2. 响应状态与头信息状态码检…

【Python 开源】你的 Windows 关机助手——PyQt5 版定时关机工具

🖥️ 你的 Windows 关机助手——PyQt5 版定时关机工具 相关资源文件已经打包成EXE文件,可双击直接运行程序,且文章末尾已附上相关源码,以供大家学习交流,博主主页还有更多Python相关程序案例,秉着开源精神的…

【MySQL】002.MySQL数据库基础

文章目录 数据库基础1.1 什么是数据库1.2 基本使用创建数据库创建数据表表中插入数据查询表中的数据 1.3 主流数据库1.4 服务器,数据库,表关系1.5 MySQL架构1.6 SQL分类1.7 存储引擎1.7.1 存储引擎1.7.2 查看存储引擎1.7.3 存储引擎对比 前言&#xff1a…

滑动窗口(3)—无重复字符的最长子串

文章目录 题目解析方法一:滑动窗口解法二(暴⼒求解)(不会超时,可以通过):附Java代码 力扣题目:无重复字符的最长子串 题目解析 方法一:滑动窗口 思路和算法 我们先用一…

C++字符串操作详解

引言 字符串处理是编程中最常见的任务之一,而在C中,我们有多种处理字符串的方式。本文将详细介绍C中的字符串操作,包括C风格字符串和C的string类。无论你是C新手还是想巩固基础的老手,这篇文章都能帮你梳理字符串处理的关键知识点…

Vulhub-DC-4靶场通关攻略

下载地址:https://www.vulnhub.com/entry/dc-4,313/ 扫描IP地址 arp-sacn -l扫描端口,开启了80和22端口 nmap -p- 192.168.112.140访问80端口 扫描目录,并没有发现敏感目录 尝试爆破 爆破成功,用户名admin 密码happy 登录成功 …