MPP和Hadoop的架构与场景分析

1、架构:
MPP:
MPP (Massively Parallel Processing)大规模并行处理,最开始的设计目的是为了消除共享资源的使用。
MPP数据库是:采用非共享架构(Shared Nothing)架构的分布式并行结构化数据库集群,跑的是sql。
MPP架构是:将单机数据库节点组成集群,每个节点拥有独立的磁盘和内存系统,通过专用网络连接彼此、协同计算,从而提供整体数据处理服务。
各节点都包含自己的存储和计算功能,可以独立执行查询的一部分。 最后,在内存里进行数据合并,并将结果返回客户端。
每台机器的资源是独立的,无共享!
在设计上,MPP架构优先考虑一致性(Consistency),其次考虑可用性(Availability),同时尽量做到分区容错性(Partition Tolerance)。
MPP技术优化点:
1、在存储上基本采用的都是列存,在巨量数据上具有更好的压缩性能。
2、在计算上选择向量化的计算引擎,并利用cpu的simd指令集加速整个计算的速度。

Hadoop:
Hadoop是将多台机器的资源共享起来,用于处理大规模数据和复杂计算问题。
SQL-on-Hadoop是:将计算任务并发分散到多个计算节点上的计算,底层处理是MR程序。
分布式架构是:各节点都拥有自己的计算能力和存储资源,能够实现场地自治(单独运行局部应用程序)。
数据在集群中全局透明共享,且各节点之间都通过局域网或广域网相连,但节点之间通信的开销较大,因此在运算时需要尽量减少数据移动。
多台机器的资源共享起来!
在设计上,分布式系统通常会优先考虑分区容错性(Partition Tolerance),其次考虑可用性(Availability),尽量做到一致性(Consistency)。

2、使用场景:
MPP:
MPP数据库适合存储高密度价值数据,并且是长期存储和多次使用,所以MPP并行数据库会花大量的精力在Load阶段,把数据处理成适合分析格式。
带来的优点就是从查询速度快,通常在秒级甚至毫秒级以内就可以返回查询结果。
适合替代现有关系数据机构下的大数据处理。
适合多维度数据自助分析、数据集市等。

Hadoop:
Hadoop分布式架构是将多台机器的资源共享起来,将计算任务并发分散到多个计算节点上计算,主要用于处理大规模数据和复杂计算问题。
适合海量数据存储查询、批量数据ETL、非机构化数据分析(日志分析、文本分析)等。

3、优缺点:
MPP:
优点:
1、MPP架构(采用Non-Master部署,节点对等的扁平结构)将数据分散到多个节点上,每个节点拥有独立的处理能力,能够同时处理多个任务,从而大幅提高数据处理性能。
2、MPP解决了单个SQL数据库不能存放海量数据的问题。
3、MPP架构可以通过增加计算节点、CPU和存储等硬件资源来实现横向扩展。
4、MPP适合替代现有关系数据机构下的大数据处理,具有较高的效率。

缺点:
1、存储不透明:MPP架构对数据分片需要进行建模和设计,使用某种算法将数据按照某种规则分割,因此存储位置对用户来说不透明。
当进行查询时,查询任务需要在所有数据节点上进行执行,这增加了查询的延迟,对于所查询的数据节点的故障处理,也需要考虑到数据恢复的问题。
2、单节点瓶颈:当进行并行计算时,计算任务会被分发到所有节点上进行计算,单节点瓶颈会成为整个系统短板,容错性差,可能会导致整个系统的响应缓慢。
3、分布式事务:MPP架构由于节点之间分散存储,远程调用在事务处理时会有延迟,而一些事务操作需要跨越多个节点进行处理,这时分布式系统的事务处理会变得很复杂,影响系统的可扩展性。
4、集群规模:当节点数达到100左右时,MPP有些仍会遇到SQScalability的问题,速度变慢,或者不稳定。

Hadoop:
优点:
1、超大集群支撑,SQL on Hadoop是利用Hadoop平台存储数据,在其之上实现SQL查询引擎。最大的特点和Scalability非常好,可以支持超过1000个节点的集群。
2、Hadoop在处理非结构化和半结构化数据上具备优势,尤其适合海量数据批处理等应用要求。
缺点:
1、Hadoop的很多查询需要做大量的数据扫描操作,因此查询速度往往比MPP要慢,而且支持的同时并发查询数一般也比较低。

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

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

相关文章

PyTorch从零开始实现LSTM

文章目录 LSTM基础理论从零开始实现LSTM简洁版LSTM实现参考资料 LSTM基础理论 关于LSTM的基础理论不再赘述,可以参考资料: RNN神经网络-LSTM模型结构https://github.com/ShusenTang/Dive-into-DL-PyTorch/blob/master/docs/chapter06_RNN/6.8_lstm.md …

摄影后期色彩管理流程(Lightroom篇)

在摄影后期处理中,色彩管理是确保图像从捕捉到输出的一致性和准确性的关键。Lightroom 和 Photoshop 其实已经将这套色彩管理流程作为默认选项,如果实质操作时仍存在色彩偏差的问题,可参考以下内容。 ProPhoto RGB > Adobe RGB > sRGB …

【Android面试八股文】性能优化相关面试题:如何查找CPU占用?

文章目录 一、 如何查找CPU的占用问题二、TraceView的使用关于TraceView和Android Studio的Profiler第一步、通过Android studio 打开`Android profiler`第二步、使用步骤第三步、技术说明第四步、CPU占用相关指标说明扩展阅读一、 如何查找CPU的占用问题 在Android开发中,如…

linux 控制台非常好用的 PS1 设置

直接上代码 IP$(/sbin/ifconfig eth0 | awk /inet / {print $2}) export PS1"\[\e[35m\]^o^\[\e[0m\]$ \[\e[31m\]\t\[\e[0m\] [\[\e[36m\]\w\[\e[0m\]] \[\e[32m\]\u\[\e[0m\]\[\e[33m\]\[\e[0m\]\[\e[34m\]\h(\[\e[31m\]$IP\[\e[m\])\[\e[0m\]\n\[\e[35m\].O.\[\e[0m\]…

Golang内存分配

Go内存分配语雀笔记整理 Golang内存模型设计理念思考核心代码阅读mspanmcachemcentral中心缓存mheap分配过程 Golang内存模型设计理念思考 golang内存分配基于TCmalloc模型,它核心在于:空间换时间,一次缓存,多次复用;…

HarmonyOS开发探索:父子组件手势绑定问题处理

场景一:父子组件同时绑定手势的冲突处理 效果图 方案 在默认情况下,手势事件为非冒泡事件,当父子组件绑定相同的手势时,父子组件绑定的手势事件会发生竞争,最多只有一个组件的手势事件能够获得响应,默认子…

二、基础—常用数据结构:列表、元祖、集合、字典、函数等(爬虫及数据可视化)

二、基础—常用数据结构:列表、元祖、集合、字典、函数等(爬虫及数据可视化) 1,字符串2,最常用的是列表(重点掌握)3,元组4,字典(重要)5&#xff0…

【CSS in Depth 2 精译】2.3 告别像素思维

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力 2.1.1 响应式设计的兴起 2.2 em 与 rem 2.2.1 使用 em 定义字号2.2.2 使用 rem 设置字号 2.3 告别像素思维 ✔️2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 2.3 告别…

3D交互可视化编辑器求推荐,最好是针对企业级使用的?

企业级使用的3D交互可视化编辑器,支持编辑和调整2D、3D渲染及交互设置,以下几款可以关注了解一下: 1、Unity:一个广泛使用的跨平台游戏引擎,由Unity Technologies开发。支持开发者创建2D和3D游戏、交互式应用以及虚拟…

pdf压缩,pdf压缩在线网页版,在线压缩pdf网站

在数字化时代,pdf文件已经成为我们工作、学习和生活中不可或缺的一部分。然而,pdf文件往往体积庞大,传输效率低下,还占用大量存储空间。如何在不影响文件质量的前提下,减小pdf文件的大小呢?今天&#xff0c…

74HC595芯片验证

目录 0x00 74595芯片简介0x01 实现原理 0x00 74595芯片简介 74595芯片有很多种封装,不管是贴片的还是直插式的,它们的引脚定义都如下图所示: 其中 : Q0-Q7为并行数据输出口,可以输出高低电平。OE 为使能引脚&#…

SpringBoot3集成MyBatisPlus

介绍 使用SpringBoot3集成MyBatisPlus&#xff0c;进行项目开发。这里分XX进行整合。 第一步&#xff1a;创建SpringBoot3项目 创建项目时选择MySQL和Web的依赖。作者在这里使用的SpringBoot版本是3.2.4。 第二步&#xff1a;添加MybatisPlus相关依赖 <!--mybatis-plus…

Linux 常用命令之 split

概述 在Linux系统中&#xff0c;split是一个非常实用的命令行工具&#xff0c;用于将一个大文件分割成多个小文件。这对于处理大型日志文件或备份大文件时非常有用。split命令提供了多种选项&#xff0c;允许用户根据文件大小或行数来分割文件。 一、split命令的基本用法 sp…

MySQL之高可用性和应用层优化(一)

高可用性 故障转移和故障恢复 在应用中处理故障转移 有时候让应用来处理故障转移会更加简单或者更加灵活。例如&#xff0c;如果应用遇到一个错误&#xff0c;这个错误外部观察者正常情况下是无法察觉的&#xff0c;例如关于数据库损坏的错误日志信息&#xff0c;那么应用可…

解决mybastis-plus加入逻辑删除SQL语句自动拼接未删除的问题

配置逻辑删除 在bootstrap.yaml中加入逻辑删除配置 mybatis-plus:global-config:db-config:logic-delete-field: isDeleted # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: true # 逻辑已删除值(默认为 1)logic-not-delete-value: …

Redis学习(12)|使用Redis在Spring Boot中实现分布式锁

文章目录 使用场景优缺点优点缺点 注意事项实现步骤1. 添加依赖2. 配置Redis连接3. 实现分布式锁逻辑3.1 创建Redis配置类3.2 创建RedisLock类3.3 使用RedisLock实现分布式锁 最佳实践 Hello大家好&#xff0c;我是阿月&#xff0c;坚持学习&#xff0c;老年痴呆追不上我&#…

Hugging Face发布重量级版本:Transformer 4.42

Hugging Face 宣布发布Transformer 4.42&#xff0c;该版本为流行的机器学习库带来了许多新功能和增强功能。此版本引入了几个高级模型&#xff0c;支持新工具和检索增强生成 &#xff08;RAG&#xff09;&#xff0c;提供 GGUF 微调&#xff0c;并整合了量化的 KV 缓存&#x…

基于协同过滤的航空票务推荐系统的设计与实现(飞机票推荐系统)

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

Android Studio 解决AAPT: error: file failed to compile

1.找到项目下的build.gradle 2.在android语块中添加下面代码 aaptOptions.cruncherEnabled false aaptOptions.useNewCruncher false 12

【数据结构】栈和队列-相互实现OJ题

前言&#xff1a; 本题目是关于栈和队列的OJ题目&#xff0c;需对栈和队列有一定了解再进行做题&#xff0c;若不了解可以根据我之前这篇文章进行学习&#xff1a;【数据结构】栈和队列-CSDN博客,题中需要的栈和队列的实现也在该文章中有源代码 目录 前言&#xff1a; 一.用…