【云计算与大数据技术】数据分片哈希算法、路由算法、复制算法的讲解(图文解释 超详细)

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 【云计算与大数据技术】数据分片哈希算法、路由算法、复制算法的讲解(图文解释 超详细)

一、大数据的存储问题

随着结构化数据量和非结构化数据量的不断增长,以及分析数据来源的多样化,之前的存储系统设计已经无法满足大数据应用的需求,对于大数据的存储,存在以下几个不容忽视的问题

容量 - “大容量”通常是指可达PB级的数据规模

延迟 - 大数据应用不可避免地存在实时性的问题

安全 - 催生出了一些新的、需要重新考虑的安全性问题

成本 - 只有让每一台设备都实现更高的“效率”,才能控制住成本

灵活性 - 大数据存储系统的基础设施规模都很大,为了保证存储系统的灵活性,使其能 够随时扩容及扩展

大数据存储技术发展

可以分为以下四个阶段

人工管理

文件系统

数据库

Google File System、HDFS、HBase etc

二、海量存储的关键技术

大数据处理面临的首要问题是如何有效地存储规模巨大的数据

通常通过数据分片和数据复制来解决这个问题

数据分片与路由

对于海量数据 ,将数据进行切分并分配到各个机器中的过程叫分片(shard/partition),即将不同数据存放在不同节点

数据分片后,找到某条记录的存储位置称为数据路由 (routing)

数据分片与路由的抽象模型如下图所示

 

数据分片

把数据的各个部分存放在不同的服务器/节点中,每个服务器/节点负责自身数据的读取与写入操作,以此实现横向扩展,这种技术称为分片

如何存放数据 - 可以实现用户从一个逻辑节点(实际多个物理节点的方式)获取 数据,并且不用担心数据的存放位置

如何保证负载平衡 - 即如何把聚合数据均匀地分布在各个节点中,让它们需要 处理的负载量相等  

哈希分片

采用哈希函数建立 Key-Partition映射,其只支持点查询,不支持范围查询,主要有Round Robin、虚拟桶 、一致性哈希3种算法

Round Robin - 其俗称哈希取模算法,若有k台机器,分片算法如下:                  

H (key ) = hash(key) mod k

优点:实现简单

缺点:缺乏灵活性,若有新机器加入,之前所有数据与机器之间的映射关系都被打乱,需要重新计算  

虚拟桶  - 在Round Robin 的基础上,虚拟桶算法加入一个“虚拟桶层 ”,形成两级映射

所有记录首先通过哈希函数映射到对应的虚拟桶(多对一映射)。虚拟桶和物理 机之间再有一层映射(同样是多对一)

右图是 Membase 虚拟桶的运行

优点:增加了系统扩展的灵活性

缺点:实现相对麻烦

一致性哈希 - 一致性哈希是分布式哈希表的一种实现算法,将哈希数值空间按照大小组成一个首尾相接的环状序列。

对于一致性哈希可能造成的各个节点负载不均衡的情况,可以采用虚拟节点的方式来解决

在哈希空间可容纳长度为 32 的二进制数值 (m = 32 )空间里,每个机器根据 IP 地址或者端口号经过哈希函数映射到环内

范围分片

范围分片首先将所有记录的主键进行排序,然后在排好序的主键空间里将记录划分成数据分片,每个数据分片存储有序的主键空间片段内的所有记录

支持范围查询即给定记录主键的范围而一次读取多条记录,范围分片既支持点查询,也支持范围查询。

分片可以极大的提高读取性能,但对于频繁写的应用帮助不大,同时分片也可减少故障范围,只有访问故障节点的用户才会受影响,访问其他的节点的用户不会收到故障节点的影响

路由

那么如何根据收到的请求找到储存的值呢,下面介绍三种方法:

直接查找法

如果哈希值落在自身管辖的范围内,则在此节点上查询,否则继续往后找,一直找到节点Nx ,x 是大于等于待查节点值的最小编号

路由表法

直接查找法缺乏效率,为了加快查找速度,可以在每个机器节点配置路由表,路由表存储每个节点到每个除自身节点的距离

一致性哈希路由算法

三、数据复制

将同一份数据放置到多个节点(主从 master-slave方式、对等式per-to-per)的过程称为复制

主从复制

master-slave模式,其中有一个 master节点,存放重要数据,通常负责数据的更新,其余节点都叫slave节点,复制操作就是让slave节点的数据与master节点的数据同步

优点:在频繁读取的情况下有助于提升数据的访问速度,还可以增加多个slave节点进行水平扩展,同时处理更多的读取请求

缺点:数据一致性,如果数据更新没有通知到全部的slave节点,则会导致数据不一致

对等复制

对等复制是指两个节点相互为各自的副本,没有主从的概念

优点:丢失其中一个节点不影响整个数据库的访问

缺点:因为同时接收写入请求,容易出现数据不一致问题。

四、数据一致性

有一个存储系统,其底层是一个复杂的高可用,高可靠的分布式存储系统,一致性模型的定义如下

1:强一致

按照某一顺序串行执行存储对象的读写操作,更新存储对象之后,后续访问总是读到最新值

2:弱一致性

更新存储对象之后,后续访问可能读不到最新值,从更新成功这一时刻算起,到所有访问者都能读到修改后的对象为止,这段时间称为不一致性窗口,在该窗口内访问存储时无法保证一致性

3:最终一致性

最终一致性是弱一致性的特例,存储系统保证所有访问最终读到对象的最新值

创作不易 觉得有帮助请点赞关注收藏~~~

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
缓存 算法 大数据
大数据查询优化算法
【10月更文挑战第26天】
129 1
|
2月前
|
存储 编解码 负载均衡
数据分片算法
【10月更文挑战第25天】不同的数据分片算法适用于不同的应用场景和数据特点,在实际应用中,需要根据具体的业务需求、数据分布情况、系统性能要求等因素综合考虑,选择合适的数据分片算法,以实现数据的高效存储、查询和处理。
|
2月前
|
机器学习/深度学习 数据采集 算法
大数据中缺失值处理使用算法处理
【10月更文挑战第21天】
126 3
|
2月前
|
存储 缓存 算法
分布式缓存有哪些常用的数据分片算法?
【10月更文挑战第25天】在实际应用中,需要根据具体的业务需求、数据特征以及系统的可扩展性要求等因素综合考虑,选择合适的数据分片算法,以实现分布式缓存的高效运行和数据的合理分布。
|
2月前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
69 0
|
3天前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
|
3天前
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
|
13天前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。
|
14天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
14天前
|
算法
基于龙格库塔算法的锅炉单相受热管建模与matlab数值仿真
本设计基于龙格库塔算法对锅炉单相受热管进行建模与MATLAB数值仿真,简化为喷水减温器和末级过热器组合,考虑均匀传热及静态烟气处理。使用MATLAB2022A版本运行,展示自编与内置四阶龙格库塔法的精度对比及误差分析。模型涉及热传递和流体动力学原理,适用于优化锅炉效率。