当前位置: 首页 > news >正文

【HBase】——简介

1 HBase 定义

  Apache HBase™ 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。

2 HBase 数据模型

• HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍。
Bigtable 是一个稀疏的、分布式的、持久的多维排序 map。
• 之后对于映射的解释如下:
该映射由行键、列键和时间戳索引;映射中的每个值都是一个未解释的字节数组。
• 最终 HBase 关于数据模型和 BigTable 的对应关系如下:
HBase 使用与 Bigtable 非常相似的数据模型。用户将数据行存储在带标签的表中。数 据行具有可排序的键和任意数量的列。该表存储稀疏,因此如果用户喜欢,同一表中的行可 以具有疯狂变化的列。
• 最终理解 HBase 数据模型的关键在于稀疏、分布式、多维、排序的映射。其中映射 map 指代非关系型数据库的 key-Value 结构。

2.1 HBase 逻辑结构

{"row_key1": {"personal_info": {"name": "zhangsan","city": "北京","phone": "131********"},"office_info": {"tel": "010-1111111","address": "atguigu"}},"row_key11": {"personal_info": {"city": "上海","phone": "132********"},"office_info": {"tel": "010-1111111"}},......
}

存储数据稀疏,数据存储多维,不同的行具有不同的列。
数据存储整体有序,按照RowKey的字典序排列,RowKey为Byte数组
在这里插入图片描述

2.2 HBase 物理存储结构

物理存储结构即为数据映射关系,而在概念视图的空单元格,底层实际根本不存储。
在这里插入图片描述

2.3 数据模型

2.3.1 Name Space

  命名空间,类似于关系型数据库的 database 概念,每个命名空间下有多个表。HBase 两 个自带的命名空间,分别是 hbase 和 default,hbase 中存放的是 HBase 内置的表,default表是用户默认使用的命名空间。

2.3.2 Table

  类似于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明列族即可,不需 要声明具体的列。因为数据存储时稀疏的,所有往 HBase 写入数据时,字段可以动态、按需 指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景。

2.3.3 Row

  HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey 的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重。

2.3.4 Column

  HBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限 定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。

2.3.5 Time Stamp

  用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段, 其值为写入 HBase 的时间。

2.3.6 Cell

由{rowkey, column Family:column Qualifier, timestamp} 唯一确定的单元。cell 中的数 据全部是字节码形式存贮。

3 HBase 基本架构

在这里插入图片描述

3.1 Master

• 实现类为 HMaster,负责监控集群中所有的 RegionServer 实例。
• 主要作用如下:
(1)管理元数据表格 hbase:meta,接收用户对表格创建修改删除的命令并执行
(2)监控 region 是否需要进行负载均衡,故障转移和 region 的拆分。
• 通过启动多个后台线程监控实现上述功能:
(1)LoadBalancer 负载均衡器 周期性监控 region 分布在 regionServer 上面是否均衡,由参数
hbase.balancer.period 控 制周期时间,默认 5 分钟。
(2)CatalogJanitor 元数据管理器 定期检查和清理 hbase:meta 中的数据。meta 表内容在进阶中介绍。
(3)MasterProcWAL master 预写日志处理器 把 master 需要执行的任务记录到预写日志 WAL 中,如果 master
宕机,让 backupMaster 读取日志继续干。

3.2 Region Server

Region Server 实现类为 HRegionServer,主要作用如下:
(1)负责数据 cell 的处理,例如写入数据 put,查询数据 get 等
(2)拆分合并 region 的实际执行者,有 master 监控,有 regionServer 执行。

3.3 Zookeeper

  HBase 通过 Zookeeper 来做 master 的高可用、记录 RegionServer 的部署信息、并且存储 有 meta 表的位置信息。
  HBase 对于数据的读写操作时直接访问 Zookeeper 的,在 2.3 版本推出 Master Registry 模式,客户端可以直接访问 master。使用此功能,会加大对 master 的压力,减轻对 Zookeeper 的压力。

3.4 HDFS

  HDFS 为 Hbase 提供最终的底层数据存储服务,同时为 HBase 提供高容错的支持.

相关文章:

【HBase】——简介

1 HBase 定义 Apache HBase™ 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。 2 HBase 数据模型 • HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍。 Bigtable 是一个稀疏的、分布式的、持久的多维排序 m…...

JAVA 有关PDF文件和图片文件合并并生产一个PDF

情景&#xff1a; 1.文件列表包含多个图片和PDF时需要对文件进行合并 2.合并时保持文件顺序 开淦&#xff1a; 一、导入POM <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</ve…...

八股文打卡day10——计算机网络(10)

面试题&#xff1a;HTTP1.1和HTTP2.0的区别&#xff1f; 我的回答&#xff1a; 1.多路复用&#xff1a;HTTP1.1每次请求响应一次都得建立一次连接&#xff0c;HTTP1.1引入了持久连接Connection&#xff1a;Keep-Alive&#xff0c;可以建立一次连接&#xff0c;进行多次请求响…...

Spring Boot学习:Flyway详解

Flyway Flyway 是一款开源的数据库版本管理工具&#xff0c;用于管理和自动化数据库结构的变更。它可以跟踪和管理数据库的版本控制&#xff0c;并在应用程序启动时自动执行升级或回滚操作。 使用Flyway&#xff0c;你可以将数据库的变更以可重复且可控的方式应用到不同环境中…...

Spark编程实验三:Spark SQL编程

目录 一、目的与要求 二、实验内容 三、实验步骤 1、Spark SQL基本操作 2、编程实现将RDD转换为DataFrame 3、编程实现利用DataFrame读写MySQL的数据 四、结果分析与实验体会 一、目的与要求 1、通过实验掌握Spark SQL的基本编程方法&#xff1b; 2、熟悉RDD到DataFram…...

文献研读|Prompt窃取与保护综述

本文介绍与「Prompt窃取与保护」相关的几篇工作。 目录 1. Prompt Stealing Attacks Against Text-to-Image Generation Models&#xff08;PromptStealer&#xff09;2. Hard Prompts Made Easy: Gradient-Based Discrete Optimization for Prompt Tuning and Discovery&#…...

cfa一级考生复习经验分享系列(十四)

首先说一下自己的背景&#xff0c;一个和金融没有半毛钱关系的数据分析师&#xff0c;之前考出了FRM。这次用一个半月突击12月的1级考试拿到了9A1B的成绩&#xff0c;纯属运气。以下纯属经&#xff08;chě&#xff09;验&#xff08;dn&#xff09;&#xff0c;请看看就好&…...

vue本地缓存搜索记录(最多4条)

核心代码 //保存到搜索历史&#xff0c;最多存四个 item.name和item.code格式为&#xff1a;塞力斯000001var history uni.getStorageSync(history) || [];console.log("history", history)var index history.findIndex((items) > {return item.name items.nam…...

Linux创建Macvlan网络

最近在看Docker的网络&#xff0c;测试Macvlan部分时&#xff0c;发现Docker创建Macvlan与预期测试结果不一样。所以查阅了Linux下配置Macvlan&#xff0c;记录如下。 参考 1.Linux Macvlan 2.图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN 3.创建ma…...

从企业级负载均衡到云原生,深入解读F5

上世纪九十年代&#xff0c;Internet快速发展催生了大量在线网站&#xff0c;Web访问量迅速提升。在互联网泡沫破灭前&#xff0c;这个领域基本是围绕如何对Web网站进行负载均衡与优化。从1997年F5发布了BIG-IP&#xff0c;到快速地形成完整ADC产品线&#xff0c;企业级负载均衡…...

什么是redis雪崩

Redis雪崩是指在使用Redis作为缓存数据库时&#xff0c;由于某种原因导致Redis服务器不可用或性能严重下降&#xff0c;从而导致大量的请求集中到数据库服务器上&#xff0c;甚至直接导致数据库服务器崩溃。 当Redis服务器出现雪崩时&#xff0c;原本应该被缓存的数据无法从缓…...

[足式机器人]Part2 Dr. CAN学习笔记-Ch00 - 数学知识基础

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Ch00 - 数学知识基础 1. Ch0-1矩阵的导数运算1.1标量向量方程对向量求导&#xff0c;分母布局&#xff0c;分子布局1.1.1 标量方程对向量的导数1.1.2 向量方程对向量的导数 1.2 案例分析&#xf…...

Jmeter、postman、python 三大主流技术如何操作数据库?

只要是做测试工作的&#xff0c;必然会接触到数据库 1、前言 只要是做测试工作的&#xff0c;必然会接触到数据库&#xff0c;数据库在工作中的主要应用场景包括但不限于以下&#xff1a; 功能测试中&#xff0c;涉及数据展示功能&#xff0c;需查库校验数据正确及完整性&…...

IRIS、Cache系统类汉化

文章目录 系统类汉化简介标签说明汉化系统包说明效果展示类分类%Library包下的类重点类非重点类弃用类数据类型类工具类 使用说明 系统类汉化 简介 帮助小伙伴更加容易理解后台系统程序方法使用&#xff0c;降低代码的难度。符合本土化中文环境的开发和维护&#xff0c;有助于…...

【三维生成】稀疏重建、Image-to-3D方法(汇总)

系列文章目录 总结一下近5年的三维生成算法&#xff0c;持续更新 文章目录 系列文章目录一、LRM&#xff1a;单图像的大模型重建&#xff08;2023&#xff09;摘要1.前言2.Method3.实验 二、SSDNeRF&#xff1a;单阶段Diffusion NeRF的三维生成和重建&#xff08;ICCV 2023&am…...

Java基础知识:单元测试和调试技巧

在Java编程中&#xff0c;单元测试和调试是提高代码质量和开发效率的重要环节。通过单元测试&#xff0c;我们可以验证代码的正确性&#xff0c;而调试则帮助我们找出并修复代码中的错误。本文将介绍Java中的单元测试和调试技巧&#xff0c;并提供相关示例代码&#xff0c;帮助…...

[c]扫雷

题目描述 扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷&#xff08;称之为地雷格&#xff09;&#xff0c;其他格子不含地雷&#xff08;称之为非地雷格&#xff09;。 玩家翻开一个非地雷格时&#xff0c;该格将会出现一个数字——提示周围格子中…...

数据结构-十大排序算法

数据结构十大排序算法 十大排序算法分别是直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序、基数排序、外部排序。 其中插入排序包括直接插入排序、折半插入排序、希尔排序&#xff1b;交换排序包括冒泡排序、快速排序&#xff1…...

Apache RocketMQ,构建云原生统一消息引擎

本文整理于 2023 年云栖大会林清山带来的主题演讲《Apache RocketMQ 云原生统一消息引擎》 演讲嘉宾&#xff1a; 林清山&#xff08;花名&#xff1a;隆基&#xff09;&#xff0c;Apache RocketMQ 联合创始人&#xff0c;阿里云资深技术专家&#xff0c;阿里云消息产品线负…...

(四) ClickHouse 中使用 `MaterializedMySQL` 引擎单独同步 MySQL 数据库中的特定表(例如 `aaa` 和 `bbb`)

要在 ClickHouse 中使用 MaterializedMySQL 引擎单独同步 MySQL 数据库中的特定表&#xff08;例如 aaa 和 bbb&#xff09;&#xff0c;您可以使用 TABLE OVERRIDE 功能。这个功能允许您指定要同步的特定表&#xff0c;同时忽略其他表。以下是步骤说明&#xff1a; 1. 启用 M…...

MCP3208 SPI驱动开发:嵌入式多通道12位ADC实战指南

1. MCP3208 ADC驱动库深度解析&#xff1a;面向嵌入式工程师的SPI模数转换实战指南MCP3208是Microchip公司推出的8通道、12位分辨率、逐次逼近型&#xff08;SAR&#xff09;模数转换器&#xff0c;采用标准四线SPI接口通信&#xff0c;支持单端与差分输入模式&#xff0c;工作…...

Oracle 身份证号码解析与年龄计算实战指南

1. 身份证号码解析基础 身份证号码作为个人身份标识&#xff0c;蕴含着丰富的个人信息。在Oracle数据库中处理身份证数据时&#xff0c;首先需要理解其编码规则。我国现行18位身份证号码由6位地区码、8位出生日期、3位顺序码和1位校验码组成。其中第7到14位就是关键的出生日期信…...

5个核心特性让嵌入式设备实现高效安全加密:tiny-AES-c轻量级加密库深度解析

5个核心特性让嵌入式设备实现高效安全加密&#xff1a;tiny-AES-c轻量级加密库深度解析 【免费下载链接】tiny-AES-c Small portable AES128/192/256 in C 项目地址: https://gitcode.com/gh_mirrors/ti/tiny-AES-c 在物联网设备和嵌入式系统的资源受限环境中&#xff0…...

Movie_Recommend系统架构解析:从数据采集到推荐展示

Movie_Recommend系统架构解析&#xff1a;从数据采集到推荐展示 【免费下载链接】Movie_Recommend 基于Spark的电影推荐系统&#xff0c;包含爬虫项目、web网站、后台管理系统以及spark推荐系统 项目地址: https://gitcode.com/gh_mirrors/mo/Movie_Recommend Movie_Rec…...

AI赋能浏览器:通过快马平台生成智能扩展,实现网页内容自动总结与代码智能解释

最近在做一个很有意思的尝试&#xff1a;用AI给浏览器装上"智能大脑"。具体来说&#xff0c;是开发一个谷歌浏览器扩展&#xff0c;能够智能分析网页内容。这个扩展最酷的地方在于&#xff0c;它能自动识别你选中的是普通文本还是代码&#xff0c;然后分别给出摘要总…...

Java微服务Istio配置必须立即更新的4个安全补丁:CVE-2024-23652等高危漏洞绕过配置详解

第一章&#xff1a;Java微服务Istio配置安全补丁的紧急性与背景近年来&#xff0c;Java微服务架构在云原生环境中广泛应用&#xff0c;而Istio作为主流服务网格控制平面&#xff0c;承担着流量管理、可观测性与零信任安全策略实施的关键角色。然而&#xff0c;2024年披露的CVE-…...

Windows 11终极优化指南:用Win11Debloat实现系统加速51%的免费方案

Windows 11终极优化指南&#xff1a;用Win11Debloat实现系统加速51%的免费方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to decl…...

用Python手搓一个简易飞行仿真器:从状态机到轨迹计算的保姆级教程

用Python手搓一个简易飞行仿真器&#xff1a;从状态机到轨迹计算的保姆级教程 飞行仿真技术听起来像是航空航天工程师的专属领域&#xff0c;但你知道吗&#xff1f;用Python和一些基础库&#xff0c;我们完全可以构建一个简化版的飞行仿真系统。本文将带你从零开始&#xff0…...

新一代指控系统依然是:人机环

AI是强大的“赋能器”和“加速器”&#xff0c;但指挥的艺术、责任和最终决断必须由人掌握。基于俄乌、美以伊博弈的案例&#xff0c;构建新一代“人机环境融合”体系化指控系统的具体实践路径已经清晰。AI的定位&#xff1a;从“自动化”到“智能化辅助”美军Maven系统&#x…...

Termius Pro功能免费解锁指南:修改background-process.js实现永久订阅

Termius订阅机制解析与安全使用建议 Termius作为一款广受开发者欢迎的SSH客户端工具&#xff0c;其Pro版本提供了诸多实用功能。本文将深入探讨Termius的订阅验证机制工作原理&#xff0c;并从技术角度分析如何安全合规地使用该工具。 1. Termius订阅机制技术解析 Termius采用典…...