Spark和Mapreduce对比

一,MapReduce的主要缺点

1.MapReduce是基于进程进行数据处理,进程相对线程来说,在创建和销毁的过程比较消耗资源,并且速度较慢。

2.MapReduce运行的时候,中间有大量的磁盘io过程。也就是磁盘数据到内存,内存到磁盘反复的读写过程。

3.MapReduce只提供了较为底层的编程API,如果想要开发比较复杂的程序,那么就需要编写大量的代码。

二,线程和进程的对比

进程(Process)和线程(Thread)是操作系统中用于执行程序的两个基本概念,它们之间有几个重要的区别:

资源分配:

进程是程序在执行时分配资源的基本单位,每个进程拥有独立的内存空间、文件描述符、堆栈等资源。

线程是进程内的执行单元,共享同一进程的资源,包括内存空间、文件描述符等。不同线程之间可以共享全局变量等数据。

并发性:

进程之间是相互独立的,每个进程都有自己的执行流程,进程之间的通信需要通过特定的机制,如进程间通信(Inter-Process Communication,IPC)。

线程是在同一个进程内部运行的,它们共享相同的地址空间,可以直接访问进程的资源,因此线程之间的通信更加方便和高效。

切换开销:

由于进程拥有独立的资源空间,进程切换的开销较大,包括保存和恢复进程的上下文、更新页表等操作。

线程共享相同的资源空间,因此线程切换的开销较小,通常只需要保存和恢复线程的上下文即可。

并发性控制:

进程之间的并发性控制相对简单,由操作系统负责管理进程的调度和资源分配。

线程之间的并发性控制更加复杂,需要程序员显式地使用同步机制(如互斥锁、信号量等)来保证线程之间的数据一致性和访问的互斥性。

总的来说,进程是操作系统中资源分配的基本单位,而线程是操作系统中执行调度的基本单位。进程之间相互独立,线程之间共享同一进程的资源,因此线程之间的通信和同步更加方便和高效

三,Spark想对MapReduce的优点:

1.Spark的底层是基于线程来执行任务

2.引入了新的数据结构--rdd(弹性分布式数据集),能够让Spark程序主要基于内存进行运行。内存的读写数据相对磁盘来说,要快很多。

3.Spark提供了更加丰富的(顶层)编程API,能够非常轻松的实现功能开发

相关推荐
Urbano2 小时前
稳产提质、快返增效:慧拿智能模板机重塑服装厂精细化盈利模式
大数据·人工智能
YueLin1112 小时前
私域直播系统的下半场,是社区零售的分水岭
大数据·零售
哥本哈士奇2 小时前
医疗器械行业 Salesforce Territory 完整落地实例
大数据·人工智能
samLi06202 小时前
【无标题】
大数据
zandy10113 小时前
企业级BI平台选型指南:评估框架与核心能力矩阵
大数据·人工智能·矩阵
远铂3 小时前
BuildAdmin:GEO优化与AI内容营销一体化解决方案
大数据·人工智能·geo·buildadmin
董可伦3 小时前
Spark 源码 | Yarn Client 模式提交流程(五)
大数据·spark
abcy0712133 小时前
storm 实时性
大数据·storm
10岁的博客4 小时前
DevEco Code 的 Plan+Build 模式:审方案再执行的技术深度解析
大数据·数据库·人工智能
会助力智能会务4 小时前
会务系统供应商怎么选?会助力智能会务系统,一站式数字化会务服务商
大数据·运维·人工智能