大数据技术——HBase简介

news2024/11/16 3:37:41

文章目录

  • 1. HBase定义
  • 2. HBase数据模型
    • 2.1 逻辑存储结构
    • 2.2 HBase 物理存储结构
  • 3. HBase基础架构

1. HBase定义

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

2. HBase数据模型

2.1 逻辑存储结构

    HBase 数据模型的关键在于稀疏、分布式、多维、排序的映射。其中映射 map指代非关系型数据库的 key-Value 结构。
    HBase 可以用于存储多种结构的数据,以 JSON 为例,存储的数据原貌为:

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

在这里插入图片描述

2.2 HBase 物理存储结构

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

  • 名词介绍
    • Name Space:命名空间,类似于关系型数据库的 database 概念,每个命名空间下有多个表。
    • Table:类似于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明列族即可,不需要声明具体的列。因为数据存储时稀疏的,所有往 HBase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景
    • Row:HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。
    • Column:HBase 中的每个列都由 **Column Family(列族)和 Column Qualifier(列限定符)**进行限定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。—列族+属性名
    • Time Stamp:用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,其值为写入 HBase 的时间。—最近一次数据更新
    • Cell:由{rowkey, column Family:column Qualifier, timestamp} 唯一确定的单元。cell 中的数据全部是字节码形式存贮

3. HBase基础架构

在这里插入图片描述

  • 架构角色
    • Master:实现类为 HMaster,负责监控集群中所有的 RegionServer 实例
      • 管理元数据表格 hbase:meta,接收用户对表格创建修改删除的命令并执行
      • 监控 region 是否需要进行负载均衡,故障转移和 region 的拆分。
    • Region Server
      • 负责数据 cell 的处理,例如写入数据 put,查询数据 get 等
      • 拆分合并 region 的实际执行者,有 master 监控,有 regionServer 执行。
    • Zookeeper
      • HBase 通过 Zookeeper 来做 master 的高可用、记录 RegionServer 的部署信息、并且存储有 meta 表的位置信息。
      • HBase 对于数据的读写操作时直接访问 Zookeeper 的,在 2.3 版本推出 MasterRegistry模式,客户端可以直接访问 master。使用此功能,会加大对 master 的压力,减轻对 Zookeeper的压力。
    • HDFS
      • HDFS 为 Hbase 提供最终的底层数据存储服务,同时为 HBase 提供高容错的支持。

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

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

相关文章

基于BP神经网络的电力负荷预测(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

SpringBoot系列之数据库初始化-jpa配置方式

【DB系列】数据库初始化-jpa配置方式 | 一灰灰Blog 上一篇博文介绍如何使用spring.datasource来实现项目启动之后的数据库初始化,本文作为数据库初始化的第二篇,将主要介绍一下,如何使用spring.jpa的配置方式来实现相同的效果 I. 项目搭建 1…

qt windeployqt打包 带多个dll的可执行程序时 应用程序无法正常启动

前提: 我的工程中包含5个子项目,项目1生成 camer.exe 项目2生成 dll1.dll ,其中项目1 依赖后面的四个子项目。 但我在打包程序时,只运行了windeployqt F:\workspace\\bin-ne\camer.exe 将打包的程序放在纯净版本上时&#xff0…

Django开发

1.创建项目 创建项目: 删除内容: 2.创建APP 创建APP 注册APP: 3.设计表结构 4.在SQL中生成表 工具连接MySQL生成数据库(在cmd中执行): create database Day1 DEFAULT CHARSET utf8 COLLATE utf8_…

融云获 51CTO 年终评选「中国 IT 行业政企数智办公优秀解决方案奖」

今日,51CTO 主办的“2022 年第十七届中国企业年终评选”榜单新鲜出炉,融云凭借百幄数智办公平台在政企信创办公领域的创新方案和独特设计,斩获“2022 年度中国 IT 行业政企数智办公优秀解决方案奖”。关注【融云 RongCloud】,了解…

B站年度产品榜 | 10项行业品类全面透析Z世代消费偏好

12月19日,哔哩哔哩官方发布“2022年 BILIBILI Z100”,这是B站官方推出的「UP主在用」年度产品榜,榜单包含10项产品类目87件产品,囊括美妆个护、数码3C、食品饮料、家居家电、交通出行、办公用品、鞋服箱包饰品、宠物用品、运动健康…

Linux线程控制

写在前面 我们今天来看线程的知识点,这个博客的内容很多,主要就是为了我们后面的网络做铺垫,最关键的是相比较于进程而言,线程是更加优秀的,我们现在的计算机大多采用的就是线程. 线程 我之前谈过在创建子进程的时候…

操作系统期末考试必会题库4——设备管理

1、DMA方式和中断控制方式的主要区别是什么? 2、面向块设备和面向流设备有何区别?各举一些例子 面向块的设备将信息保存在块中,块的大小通常是固定的,传送过程中一次传送一块。通常可以通过块号访问数据。磁盘和USB智能卡都是面向…

【Linux】Linux权限(一)文件权限和目录权限

Linux权限1.Linux权限的概念2.Linux的用户分类3.Linux的文件类型3.1如何看待Linux下的文件后缀4.Linux的文件权限5.Linux下切换用户指令6.Linux文件访问者的分类(拥有者、所属组、other)6.1root 和普通用户 与 拥有者和所属组和其他人的关系6.2 如何描述…

matlab中ginput函数的用法

仅用来记录自己学习中不会的函数 ginput函数:来自鼠标或光标的图形输入 一、语法 [x,y] ginput(n) [x,y] ginput [x,y,button] ginput(…) 二、说明 ginput 提高当前坐标区中的交叉线以供您标识图窗中的点,从而使用鼠标定位光标。图窗必须具有焦点…

【Linux】 第八部分 Linux常用基本命令

【Linux】 第八部分 Linux常用基本命令 文章目录【Linux】 第八部分 Linux常用基本命令8. Linux常用基本命令8.1 帮助命令8.2 文件目录类命令pwd 显示当前工作目录的绝对路径cd 切换目录ls 列出目录的内容mkdir 创建目录rmdir 删除目录touch 创建文件cp 复制文件或者目录rm 删除…

网络编程 异步选择模型

目录 1.概念 2.代码样例 1.概念 基本概念,在这一个模型中的代码使用到了vs中窗口应用程序,可以看这一片文章https://blog.csdn.net/weixin_62859191/article/details/128415737?spm1001.2014.3001.5501https://blog.csdn.net/weixin_62859191/article/d…

站在2023起跑线,政企数字化如何深入“核心地带”?

今天,各行各业都积极开展数字化变革,以云为底座开展数字化已成为行业共识。而更进一步观察会发现,大型政企作为数字化转型的先行者和主力军,已经从资源上云、应用上云阶段,率先抵达了数字化深水区,迈入了深…

UDS-Data transmission functional unit

11 数据传输功能单元 11.1 概述 表185指定了数据传输功能单元。 注: ReadDataByIdentifier:客户端通过提供的dataIdentifier去请求读取标识记录的当前值。ReadMemoryByAddress:客户端请求读取所提供的内存范围的当前值。ReadScalingData…

机器学习100天(十九):019 分类模型评价指标-混淆矩阵

机器学习100天,今天讲的是:分类模型评价指标-混淆矩阵。 《机器学习100天》完整目录:目录 一、准确率(Accuracy) 逻辑回归是一个分类模型,那么对于分类模型,如何评估它的优劣呢? 好,我们先来认识一个名词:混淆矩阵(confusion matrix)。混淆矩阵是用来衡量一个分…

C语言预处理器

C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 …

pybind11学习 | 使用CMake构建系统并生成pyd文件

文章目录一 通过Visual Studio生成二 通过CMake生成一 通过Visual Studio生成 在我之前的一篇文章pybind11学习 | VS2022下安装配置中,描述了如何通过配置VS2022实现pybind11项目构建和编译成Python拓展模块。 二 通过CMake生成 项目结构如下: 其中py…

(二十七)Vue组件的样式

文章目录scoped属性实现原理lang属性样式穿透Vue学习目录 上一篇:(二十六)Vue之插件 scoped属性 scoped 属性是 HTML5 中的新属性。如果使用该属性,则样式仅仅应用到 style 元素的父元素及其子元素。即让样式在局部生效&#x…

kafka多线程消费

Kafka consumer 多线程消费 kafka 消费者对象 - KafkaConsumer是非线程安全的。与KafkaProducer不同,KafkaProducer是线程安全的,因为开发者可以在多个线程中放心地使用同一个KafkaProducer实例。 但是对于消费者而言,由于它是非线程安全的…

FreeFileSync 11.29 发布

导读FreeFileSync 是一款开源软件,适用于 Windows、macOS 和 Linux。FreeFileSync 本质是一个用于文件夹对比和同步的软件,它可以创建和管理所有重要文件的备份副本。FreeFileSync 不是每次都复制每个文件,而是确定源文件夹和目标文件夹之间的…