大数据技术原理与应用期末复习-知识点(二)
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 脚本 模块化脚本 脚本执行顺序 全局…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...