大数据技术原理与应用期末复习-知识点(二)
HBASE
Hbase与传统关系数据库的对比分析
1.数据类型:
关系型数据库采用关系模型
Hbase采用更简单的数据模型(把数据存储为未经解释的字符串)
2.数据操作:
关系数据库:增删改查等
Hbase:插入 查询 删除 清空 (通常只采用单表的主键查询)
3.存储模式:
关系数据库:行模式
Hbase:列模式
4.数据索引:
关系数据库:复杂的多个索引
Hbase:只有一个索引-行键
5.数据维护:
关系数据库:新值覆盖旧值,被覆盖后不存在
Hbase:不删除旧版本,而是生辰新版本
6.可伸缩性:
关系数据库:难实现横向扩展和纵向扩展
Hbase:灵活的横向扩展
Hbase相关概念
Hbase是一个稀疏、多维、持久化存储的映射表
采用 行键、列族、限定符、时间戳进行索引
每个值都是未经解释的字节数组byte[]
表(Table)
想象一下,整个图书馆就是一个巨大的表。在这个图书馆里,我们把所有关于同一类主题的书放在同一个区域。例如,所有的科幻小说可能都在一个特定的区域。这个区域就可以比作是HBase中的一个“表”。每个表用来存储特定类型的数据集合。
行键(Row Key)
每一本书都有一个独一无二的编号,这个编号帮助我们快速找到这本书的位置。在HBase中,行键就是每一行数据的唯一标识符,它决定了数据存放在哪里以及如何排序。就像图书馆里的每本书都有唯一的编号一样,每一行数据也有唯一的行键。
列族(Column Family)
继续我们的图书馆比喻,假设图书馆内有多个不同的分类,比如科幻、历史、艺术等。每个分类可以看作是一个列族。列族是用来组织相似或相关的列(属性)。例如,在用户信息表中,你可能会有一个包含基本信息(如姓名、年龄)的列族和另一个包含地址信息的列族。这有助于提高读写效率和数据压缩。
列限定符(Column Qualifier)
如果我们进一步细分,每个分类下的书还可以根据更具体的属性来区分,比如作者名、出版年份等。在HBase中,这些具体的属性被称为列限定符。它们定义了列族内的具体列,用来存储特定的信息片段。例如,在"个人信息"列族下,你可以有"名字"、“性别”这样的列限定符。
单元格(Cell)
现在,考虑一本书的具体内容,比如说《1984》这本书的具体信息,包括它的标题、作者、出版日期等等。在HBase中,每一个具体的值就叫做单元格。它是行键、列族、列限定符和时间戳共同确定的一个位置上的数据项。
时间戳(Timestamp)
最后,假设每次当你借阅一本书时,图书馆都会记录这次借阅的时间。同样的,HBase也为每一个单元格存储了一个时间戳,表示该数据被写入的时间。这样可以支持版本控制,即对于同一个行键、列族和列限定符组合,可以保存多份不同时间点的数据副本。
数据坐标的概念
HBase 中需要根据行键、列族、列限定符和时间戳来确定一个单元格,所以视为一个“四维坐标”
[行键,列族,列限定符,时间戳]
视图
概念视图
想象一下你正在设计一个全新的图书馆。首先,你需要考虑的是这个图书馆将要存放什么类型的书籍和资料,以及如何组织这些信息才能让读者最方便地找到他们需要的东西。这种高层次的设计就是概念视图。它描述了数据的整体结构,包括有哪些表、每个表里应该包含哪些列族和列限定符等。简单来说,概念视图是你对数据结构的理想化设想,而不涉及具体实现细节。
物理视图
接下来,当你真正开始建造图书馆时,你得决定书架放在哪里,书怎么摆放才能最大化空间利用,并确保快速查找。这就是物理视图,它涉及到实际存储数据的方式。在HBase中,物理视图决定了数据是如何分布在集群中的各个节点上的,比如通过行键的范围分割成多个区域(Region),每个区域都由特定的服务器管理。
面向列的存储
假设你希望你的图书馆非常特别,它不是按整本书来排列,而是把每一本书的内容拆分开,按照章节或者段落的主题来组织。比如所有关于“魔法”的段落都被放在一起,不论它们来自哪本书。这种方式可以极大地方便那些只对某一特定主题感兴趣的读者。
与传统的关系型数据库(如MySQL)不同,它们是面向行的存储,即一行数据的所有字段都会被连续地存储在一起;
而HBase采用的是面向列的存储方式,意味着相同列的数据会被一起存储。
Hbase的实现原理
功能组件
库函数、一个Master主服务器、多个Region服务器
表和region
Region定位
每个region都有一个regionID来标识唯一性
Hbase三层结构
Hbase的运行机制
Region服务器的工作原理
region服务器是最核心的一块。用户读写数据,缓存刷新,StoreFile合并
1. Region分配
首先,就像图书馆会把不同类型的书放在不同的书架上一样,HBase会将一张表的数据分成多个部分,这些部分叫做Region。每个Region服务器可以管理多个Region,并且每个Region都包含了一定范围内的行数据。当一个新的Region需要被创建或现有Region需要重新分配时,有一个专门的服务器(称为HMaster)会负责协调这些Region在各个Region服务器之间的分配。
2. 客户端请求处理
每当有用户想要查询或更新某些数据时,就相当于读者来找管理员借书或还书。这时,Region服务器就会接收到来自客户端的请求。根据请求的内容,Region服务器可能会执行以下几种操作之一:
- 读取数据:如果用户想查看某条记录,Region服务器会在其管理的Region中查找相应的数据并返回给用户。
- 写入数据:当用户要添加新数据或修改已有数据时,Region服务器会先将更改暂时保存在一个内存结构(称为MemStore)中,然后定期地把这些更新持久化到硬盘上的文件系统中。
- 删除数据:类似于从书架上移除一本书,Region服务器会标记某些数据为“已删除”,但不会立即物理删除它们;相反,这些标记会在后续的清理过程中被处理掉。
3. 数据存储与管理
Region服务器不仅负责处理实时请求,还承担着管理和维护数据的任务。具体来说:
- MemStore:这是位于内存中的缓存区,用于暂存新插入或更新的数据。一旦MemStore满了,它的内容就会被刷新到硬盘上的文件中。
- StoreFile:每当MemStore的内容被刷写到磁盘后,它们会以文件的形式存储下来,这些文件被称为StoreFile。随着时间推移,同一个Region可能会积累多个StoreFile。
- Compaction(合并):为了提高性能和节省空间,Region服务器会定期对StoreFiles进行合并操作。这个过程会清理掉那些已被标记为删除的数据,并将多个小文件合并成更大的文件,从而减少文件数量并优化读取效率。
4. 故障恢复机制
最后,考虑到任何硬件都有可能出现故障,HBase设计了容错机制来保证即使某个Region服务器发生故障,也不会导致数据丢失。所有写入的数据都会首先记录在一个叫做WAL(Write-Ahead Log,预写日志)的日志文件里。如果Region服务器意外宕机,可以通过重放WAL中的记录来恢复未完成的操作。
NOSQL
NOSQL的特点
1.灵活的可扩展性
2.灵活的数据模型
3.与云计算紧密融合
NOSQL兴起的原因
关系数据库无法满足Web2.0的需求 NoSQL 数据库应运而生,它很好地满足了 Web 2.0 的需求,得到了 市场的青睐
关系数据库在Web2.0不适用的原因
1.无法满足海量数据的管理需求
2.无法满足数据高并发的需求
3.无法满足高可扩展性和高可用性的需求
NOSQL和关系数据库的对比
NOSQL的四大类型
NOSQL的三大基石
CAP,BASE,最终一致性
CAP
最多只能满足其中两个
BASE
有ACID四性:
A:原子性(要么全执行,要么全不执行)
C:一致性(保持一致状态)
I:隔离性
D:持久性(出现致命故障也保持修改)
BASE的基本含义是:基本可用、软状态、最终一致性
BASE的三个状态
1. 基本可用(Basically Available)
- 含义:即使系统的一部分出现问题,整个系统仍然可以继续工作,只是可能有些服务或功能会受到限制。
- 例子:假设你们点餐后,餐厅的打印机坏了,不能打印订单。但是服务员可以用手写的方式记录你们的订单,并且厨房也能够根据这些手写订单做菜。虽然过程慢了一点,但餐厅的服务并没有完全停止。
2. 软状态(Soft State)
- 含义:系统的状态可以在一段时间内发生变化,而不必立即反映所有更新。换句话说,系统不必实时保持最新状态。
- 例子:你们点了饮料,服务员记下了你们的订单并告诉了酒吧。然而,在酒吧开始准备之前,如果你们改变了主意想要换一种饮料,这个变化不会立刻同步给酒吧,直到服务员再次通知他们。这段时间内,酒吧持有的是“软状态”,即不是最新的、绝对正确的状态。
3. 最终一致性(Eventual Consistency)
- 含义:随着时间推移,系统中的所有副本都将收敛到相同的状态。尽管中间可能会有一段时间数据不一致,但最终所有节点上的数据都会变得一致。
- 例子:当你们更改了饮料选择,服务员最终会将新的选择传达给酒吧,确保你们得到的是最新要求的饮料。即使在这期间有延迟,最终你们拿到的饮品还是会符合最后的选择。
MapReduce
MapReduce的输入输出
MapReduce的各个执行阶段(过程)
1.MapReduce 框架使用 InputFormat 模块做 Map 前的预处理,然后将输入文件切分为逻辑上的多个 InputSplit
2.通过 RecordReader(RR)根据 InputSplit 中的信息来处理 InputSplit 中的具体记录,加载数据并将其转换为适合 Map 任务读取的键值对,输入给 Map 任务
3.Map 任务会根据用户自定义的映射规则,输出一系列的作为中间结果
4.Shuffle过程:对 Map 的输出进行一定的分区、 排序、合并、归并等操作,得到形式的中间结果,再交给对应的 Reduce 来处理
5.Reduce 以一系列中间结果作为输入,输出结果交给 OutputFormat 模块
6.OutputFormat 模块会验证输出目录是否已经存在,以及输出结果类型是否符合配置文件 中的配置类型,如果都满足,就输出 Reduce 的结果到分布式文件系统
Shuffle过程详解
相关文章:

大数据技术原理与应用期末复习-知识点(二)
HBASE Hbase与传统关系数据库的对比分析 1.数据类型: 关系型数据库采用关系模型 Hbase采用更简单的数据模型(把数据存储为未经解释的字符串) 2.数据操作: 关系数据库:增删改查等 Hbase:插入 查询 删…...

高效准确的PDF解析工具,赋能企业非结构化数据治理
目录 准确性高:还原复杂版面元素 使用便捷:灵活适配场景 贴心服务:快速响应机制 在数据为王的时代浪潮中,企业数据治理已成为组织优化运营、提高竞争力的关键。随着数字化进程的加速,企业所积累的数据量呈爆炸式增长…...

C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
一、介绍 栈和队列是限定插入和删除只能在表的“端点”进行的线性表,是线性表的子集,是插入和删除位置受限的线性表。 (操作受限的线性表) 二、栈 1)概念: 栈(stack)是一个特殊的线性表,是限…...

读书笔记~管理修炼-缄默效应
缄默效应:学会正确批评下属 员工明明犯了错误,却不及时告知你,总是拖到最后一刻无法弥补时才不得不承认出了问题——你遇到过这样的问题吗? 这其实是缄默效应在发挥作用。 在职场中,即使再扁平化的环境&…...

视频会议系统会前预约模块必须包含哪些功能?
视频会议系统会前预约模块必须包含哪些功能? 视频会议系统的会前预约模块是企业高效管理会议资源、提升会议效率的重要工具。一个完善的会前预约模块必须包含一系列功能,以确保会议的顺利进行和资源的合理分配。以下是对视频会议系统会前预约模块必须包…...

RabbitMQ中的Topic模式
在现代分布式系统中,消息队列(Message Queue)是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个广泛使用的开源消息代理,支持多种消息传递模式,其中 Topic 模式 是一种灵活且强大的模式,允许生产者…...

tslib(触摸屏输入设备的轻量级库)的学习、编译及测试记录
目录 tslib的简介tslib的源码和make及make install后得到的文件下载tslib的主要功能tslib的工作原理tslib的核心组成部分tslib的框架和核心函数分析tslib的框架tslib的核心函数ts_setup()的分析(对如何获取设备名和数据处理流程的分析)函数ts_setup()自身的主要代码ts_setup()对…...

Ubuntu vi(vim)编辑器配置一键补全main函数
1.打开对应的配置文件 vi ~/.vim/snippets/c.snippets 2.按G将光标定位到文件末尾 3.按i进入插入模式 以tab键开头插入下的内容,空行也要加 tab键 4.:wq保存退出 5.再打开任意一个新的 .c文件后,插入模式输入 main 然后按tal键就能补全了...

验证码机制
偶然间看到了验证码机制,顺便总结一下: 首先,验证码是从后端生成的,随机生成; 【后端永远认为前端有可能会被伪造】 1.后端调用相关的绘图第三方类库,或是(平台PHP、.NET、java)系…...

【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE
大多数开发人员都同意,与 15 年前相比,PHP 是一种更加理智、更加安全和可靠的语言。PHP5早期的不良设计已让位于更好的开发生态系统,其中包括类、自动加载、更严格的类型、更理智的语法以及一大堆其他改进。安全性也没有被忽视。 register_globals一些老读者可能还记得和的…...

使用FakeSMTP创建本地SMTP服务器接收邮件具体实现。
以下代码来自Let’s Go further节选。具体说明均为作者本人理解。 编辑邮件模版 主要包含三个template: subject:主题plainBody: 纯文本正文htmlBody:超文本语言正文 {{define "subject"}}Welcome to Greenlight!{{end}} {{def…...

【网络安全】逆向工程 练习示例
1. 逆向工程简介 逆向工程 (RE) 是将某物分解以了解其功能的过程。在网络安全中,逆向工程用于分析应用程序(二进制文件)的运行方式。这可用于确定应用程序是否是恶意的或是否存在任何安全漏洞。 例如,网络安全分析师对攻击者分发…...

Oracle Database 21c Express Edition数据库 和 Sqlplus客户端安装配置
目录 一. 前置条件二. Win10安装配置Oracle数据库2.1 数据库获取2.2 数据库安装2.3 数据库配置确认2.4 数据库访问 三. Win10配置Oracle数据库可对外访问3.1 打开文件和打印机共享3.2 开放1521端口 四. 端口与地址确认4.1 查看监听器的状态4.2 Win10查看1521端口是否被监听4.3 …...

arcgisPro将面要素转成CAD多段线
1、说明:正常使用【导出为CAD】工具,则导出的是CAD三维多线段,无法进行编辑操作、读取面积等。这是因为要素面中包含Z值,导出则为三维多线段数据。需要利用【复制要素】工具禁用M值和Z值,再导出为CAD,则得到…...

相机内外参知识
已知相机的内外参数矩阵,可以求得相机在世界坐标系下的原点坐标。这里需要理解几个概念: 内参数矩阵(Intrinsic Matrix): 描述相机本身的属性,比如焦距、主点位置等。外参数矩阵(Extrinsic Matrix…...

从代币角度介绍solana账户体系
1、solana 的账户概念介绍 Solana的账户体系是其区块链的核心组成部分,它允许数据和价值在链上存储和转移。以下是Solana账户体系的一些关键特点: • 账户模型: • 在Solana上,所有数据都存储在所谓的“账户”中,类似…...

前端引入字体文件
1. 字体下载 阿里矢量图图标库地址 https://www.iconfont.cn/,页面打开后选中,素材库 > 字体库 左侧两个标签页可以切换,右侧放大镜图标可以搜索自己需要的字体 字体预览区域可以自行调整进行字体预览 右上角点击字体包下载,下…...

qemu启动后网络怎么设置?配合qemu-system-riscv64的命令设置
QEMU启动的时候,可以选择组网方式,一般有两种选择,user模式和tap模式 user模式就是用NAT,tap模式就是用bridge网桥模式。以前也有过一次实践:FreeBSD RISCV 在QEME中实践-网络配置_pkg.txz: not found-CSDN博客 user…...

如何测量分辨率
一、什么是分辨率? 分辨率指的是分清物体细节的能力。分辨率是一个成像系统还原空间频率的能力。一些人只是简单的用分辨率去描述极限分辨率,但是相机在在不同的对比度的情况下还原低,中和高频率的能力,也可以显示全面综合的信息。…...

汇总贴:cocos creator
1 cocoscreator-doc-TS:目录-CSDN博客 访问节点和组件 常用节点和组件接口 创建和销毁节点 加载和切换场景 获取和设置资源 监听和发射事件 节点系统事件 缓动系统(cc.tween) 使用计时器 使用对象池 使用 TypeScript 脚本 模块化脚本 脚本执行顺序 全局…...

[N1CTF 2018]eating_cms
[N1CTF 2018]eating_cms 知识点 文件上传 解题 这个题感觉还好,知识点真心不难,就是全混在一起。 思路差不多挺离谱 首先看到,有一个登录界面,然后猜测有注册界面 admin注册不了,随便注册一个账号。 注册之后&…...

重拾设计模式--建造者模式
文章目录 建造者模式(Builder Pattern)概述建造者模式UML图作用:建造者模式的结构产品(Product):抽象建造者(Builder):具体建造者(Concrete Builderÿ…...

【机器学习】以机器学习为翼,翱翔网络安全创新苍穹
我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 在数字化浪潮汹涌澎湃的当下,网络安全如同守护数字世界的坚固堡垒,其重要性不言而喻。而机器学习技术的蓬勃…...

人工智能在VR展览中扮演什么角色?
人工智能(AI)在VR展览中扮演着多重关键角色,这些角色不仅增强了用户体验,还为展览的组织者提供了强大的工具。 接下来,由专业从事VR展览制作的圆桌3D云展厅平台为大家介绍AI在VR展览中的一些主要作用: 个性…...

mysql,创建数据库和用户授权核心语句
一.库操作1.创建库create database if not exists 库名 default 字符集 default 校对规则2.删除库drop database if exists 库名3.修改库的,字符集,校对规则alter databse 库名 default 字符集 default 校对规则4.查看当前使用的库seclect databse();5.查看库show databases;…...

日期区间选择器插件的操作流程
我们知道,在开发过程中,为了能够在规定时间内完成项目,有时候我们都会使用插件来大大提高我们的开发效率,有些插件是可以直接拿来用,但是有些插件拿过来之后是需要进行修改,在使用插件的时候还有很多的注意…...

【WRF教程第3.2期】预处理系统 WPS详解:以4.5版本为例
预处理系统 WPS 详解:以4.5版本为例 WPS 嵌套域(WPS Nested Domains)USGS 和 MODIS 土地利用重力波拖拽方案静态数据(Gravity Wave Drag Scheme Static Data)1. 什么是重力波拖拽方案(GWDO)静态…...

深度学习的DataLoader是什么数据类型,为什么不可用来索引
在 Python 中,DataLoader是torch.utils.data.DataLoader类的实例对象,用于加载数据,它本身不是一种基本数据类型,而是一种特殊的迭代器类型,主要用于按批次加载数据,以下是其通常不可索引的原因:…...

物理信息神经网络(PINN)八课时教案
物理信息神经网络(PINN)八课时教案 第一课:物理信息神经网络概述 1.1 PINN的定义与背景 物理信息神经网络(Physics-Informed Neural Networks,简称PINN)是一种将物理定律融入神经网络训练过程中的先进方…...

Linux setfacl 命令详解
文章目录 Linux setfacl 命令详解一、ACL 和 setfacl 简介二、基本语法三、常用操作1. 查看 ACL2. 为用户设置权限3. 为组设置权限4. 删除 ACL 条目5. 设置默认 ACL6. 递归设置 ACL 四、示例操作1. 创建示例目录和文件2. 设置 ACL3. 验证 ACL 五、注意事项六、总结 Linux setfa…...