大数据面试题:Spark和MapReduce之间的区别?各自优缺点?

这篇具有很好参考价值的文章主要介绍了大数据面试题:Spark和MapReduce之间的区别?各自优缺点?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

面试题来源:

《大数据面试题 V4.0》

大数据面试题V3.0,523道题,679页,46w字

可回答:

1)spark和maprecude的对比;2)mapreduce与spark优劣好处

问过的一些公司:阿里云(2022.10),银联(2022.10),携程(2022.09),vivo(2022.09),滴滴(2022.09)(2020.09),网易云音乐(2022.09),快手(2022.08),字节(2022.08)x2(2022.05)(2020.09)(2020.06)(2019.11)x4,快手(2022.08),星环科技(2022.07),海康威视(2022.06),字节日常实习(2022.03),思科cisco(2021.11),腾讯PCG(2021.10),腾讯云(2021.10),阿里(2021.10),蔚来(2021.09),重庆富民银行(2021.09),网易杭研院(2021.09),网易严选(2021.08),小米(2021.08)(2020.09)(2019.09),华为精英计划(2021.07),触宝(2021.07),有道(2021.03),作业帮社招(2020.09),58(2020.09),一点资讯(2020.08),多益(2020.08),360实习(2020.04),阿里菜鸟(2020.04),腾讯互娱(2020.03),蘑菇街实习(2020.03)x2,阿里淘系(2019.11),美团大众点评(2019.10),微众银行(2019.09),网易有道(2019.08),招商银行信用卡中心(2019.04),光大银行(2019.03),头条(2018.11)

参考答案:

1、Spark处理数据是基于内存的,而MapReduce是基于磁盘处理数据的

MapReduce是将中间结果保存到磁盘中,减少了内存占用,牺牲了计算性能。

Spark是将计算的中间结果保存到内存中,可以反复利用,提高了处理数据的性能。

2、Spark在处理数据时构建了DAG有向无环图,减少了shuffle和数据落地磁盘的次数

Spark计算比MapReduce快的根本原因在于DAG计算模型。一般而言,DAG相比MapReduce在大多数情况下可以减少shuffle次数。Spark的DAGScheduler相当于一个改进版的MapReduce,如果计算不涉及与其他节点进行数据交换,Spark可以在内存中一次性完成这些操作,也就是中间结果无须落盘,减少了磁盘IO的操作。但是,如果计算过程中涉及数据交换,Spark也是会把shuffle的数据写磁盘的。

3、Spark比MapReduce快

有一个误区,Spark是基于内存的计算,所以快,这不是主要原因,要对数据做计算,必然得加载到内存,Hadoop也是如此,只不过Spark支持将需要反复用到的数据Cache到内存中,减少数据加载耗时,所以Spark跑机器学习算法比较在行(需要对数据进行反复迭代)。

4、Spark是粗粒度资源申请,而MapReduce是细粒度资源申请

粗粒度申请资源指的是在提交资源时,Spark会提前向资源管理器(YARN,Mess)将资源申请完毕,如果申请不到资源就等待,如果申请到就运行task任务,而不需要task再去申请资源。

MapReduce是细粒度申请资源,提交任务,task自己申请资源自己运行程序,自己释放资源,虽然资源能够充分利用,但是这样任务运行的很慢。

5、MapReduce的Task的执行单元是进程,Spark的Task执行单元是线程

进程的创建销毁的开销较大,线程开销较小。

6、Spark优缺点

优点:

1)Spark把中间数据放到内存中,迭代运算效率高。

Spark支持DAG图的分布式并行计算的编程框架,减少了迭代过程中数据的落地,提高了处理效率。

2)Spark 容错性高

Spark 引进了弹性分布式数据集 RDD (Resilient DistributedDataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”(即允许基于数据衍生过程)对它们进行重建。另外在RDD 计算时可以通过 CheckPoint 来实现容错。

3)Spark更加通用

Spark提供的数据集操作类型分为:Transformations和Actions两大类。Transformations包括Map、Filter、FlatMap、Sample、GroupByKey、ReduceByKey、Union、Join、Cogroup、MapValues、Sort等多种操作类型,同时还提供Count, Actions包括Collect、Reduce、Lookup和Save等操作。

缺点:

1)内存问题

JVM的内存overhead太大,1G的数据通常需要消耗5G的内存。

2)性能问题

由于大量数据抄被缓存在RAM中,Java回收垃圾缓慢的情况严重,导致Spark性能不稳定。

7、MapReduce优缺点

优点:

1)MapReduce 易于编程

它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的 PC 机器上运行。也就是说你写一个分布式程序,跟写一个简单的串行程序是一模一样的。就是因为这个特点使得 MapReduce 编程变得非常流行。

2)良好的扩展性

当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展它的计算能力。

3)高容错性

MapReduce 设计的初衷就是使程序能够部署在廉价的 PC 机器上,这就要求它具有很高的容错性。比如其中一台机器挂了,它可以把上面的计算任务转移到另外一个节点上运行, 不至于这个任务运行失败,而且这个过程不需要人工参与,而完全是由Hadoop内部完成的。

4)适合 PB 级以上海量数据的离线处理

可以实现上千台服务器集群并发工作,提供数据处理能力。

缺点:

1)不擅长实时计算

MapReduce无法像MySQL一样,在毫秒或者秒级内返回结果。

2)不擅长流式计算

流式计算的输入数据是动态的,而MapReduce的输入数据集是静态的,不能动态变化。这是因为 MapReduce 自身的设计特点决定了数据源必须是静态的。

3)不擅长 DAG(有向无环图)计算

多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出。在这种情况下,MapReduce并不是不能做,而是使用后,每个MapReduce作业的输出结果都会写入到磁盘, 会造成大量的磁盘 IO,导致性能非常的低下。文章来源地址https://www.toymoban.com/news/detail-773580.html

到了这里,关于大数据面试题:Spark和MapReduce之间的区别?各自优缺点?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 06 为什么需要多线程;多线程的优缺点;程序 进程 线程之间的关系;进程和线程之间的区别

    CPU、内存、IO之间的性能差异巨大 多核心CPU的发展 线程的本质是增加一个可以执行代码工人 多线程的优点 多个执行流,并行执行。(多个工人,干不一样的活) 多线程的缺点 上下文切换慢,切换上下文典型值1us vs 0.3ns/cycle CPU在执行A任务(A没有执行完)时,切换到任务B,需

    2024年02月14日
    浏览(29)
  • 大数据篇 | Hadoop、HDFS、HIVE、HBase、Spark之间的联系与区别

    Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。它提供了一个可扩展的分布式文件系统(HDFS)和一个分布式计算框架(MapReduce),可以在大量廉价硬件上进行并行计算。 HDFS(Hadoop Distributed File System)是Hadoop的分布式文件系统。它被设计用于在集群中存储

    2024年02月16日
    浏览(36)
  • 大数据面试题:Spark和Flink的区别

    面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:1)Spark Streaming和Flink的区别 问过的一些公司:杰创智能科技(2022.11),阿里蚂蚁(2022.11),阿里云(2022.10)(2019.03),携程(2022.10),银联(2022.10),顺丰(2022.09)(2022.05),贝壳(2022.09),美团(2022.09),字节

    2024年02月08日
    浏览(34)
  • 面试题:Spring 与 Springboot 的区别以及优缺点

    Spring是一个开源的Java开发框架,旨在简化企业级Java应用程序的开发。它提供了一套完整的基础设施,包括依赖注入、面向切面编程、声明式事务管理等。 Spring Boot是一个用于创建独立的、生产级别的基于Spring的应用程序的框架。它将各种Spring组件和第三方库整合到一个能够

    2024年02月13日
    浏览(27)
  • Torch中常见插值方式及各自的优缺点

    插值指的是利用已知数据去预测未知数据,图像插值则是给定一个像素点,根据它周围像素点的信息来对该像素点的值进行预测。 当我们调整图片尺寸或者对图片变形的时候常会用到图片插值。 常见的插值算法可以 分为两类 : 自适应和非自适应 。 自适应的方法可以根据插

    2024年02月10日
    浏览(22)
  • Springboot四种实现鉴权方式各自的优缺点

    拦截器 :拦截器是基于SpringMVC的一种机制,它可以在请求到达控制器之前或之后进行拦截和处理,比如验证用户身份,记录日志,添加响应头等。 优点 :拦截器可以获取到请求的上下文信息,如请求路径,参数,方法等,可以根据不同的业务逻辑进行灵活的处理。拦截器也

    2024年02月10日
    浏览(31)
  • Apache和Nginx的优缺点及各自使用的场景

    Apache和Nginx是两个常见的Web服务器,它们在性能、架构设计和适用场景上有一些不同之处。 Apache: 优点: 模块丰富: Apache支持大量的第三方模块,提供了很大的灵活性和可扩展性。 .htaccess 文件: Apache允许使用.htaccess文件进行配置,使得配置更加灵活,而无需修改主配置文

    2024年01月21日
    浏览(27)
  • [架构之路-195]-《软考-系统分析师》- MVC、MVP、MVVM架构各自的优缺点

    目录 前言: 一、MVC 1.1 MVC的基本结构 1.2 MVC的工作流程 1.3 MVC的优缺点 二、MVP 2.1 MVP的基本结构 2.2 MVP的工作流程 2.3 MVP的优缺点 三、MVVM 3.1 MVVM的基本结构 3.2 MVVM的工作流程 3.3 MVVM的优缺点 MVC: 一个controller对应多个view,model可以直接通过view。从大锅烩时代进化,引入了分层

    2024年02月04日
    浏览(38)
  • 如果SSE推送不稳定,是不是可以考虑切换成WebSocket,各自有什么优缺点

    面对 Server-Sent Events (SSE) 推送不稳定的情况时,可以考虑切换到 WebSocket。SSE 和 WebSocket 都是现代Web应用中用于实现实时通信的技术,但它们有各自的优缺点和最适用的场景。 Server-Sent Events (SSE) 优点 简单性 :SSE 在使用上比 WebSocket 更简单,特别是在仅需要单向通信(服务器到

    2024年02月04日
    浏览(42)
  • 学习STM32是用标准库好还是HAL库好?各自有什么优缺点?做项目应用哪种库比较合适?

    学习STM32可以使用标准库或HAL库,它们各有优缺点,具体使用哪种库取决于你的项目需求和个人偏好。 标准库是适用于单片机开发的基本库。它提供了对芯片的低级访问,可直接访问寄存器,操作系统资源,中断和固件等。标准库代码量较小,运行速度快,适用于简单的应用

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包