当前位置: 首页 > news >正文

谁能讲清楚Spark之与MapReduce的对比

我们已经知道Spark是如何设计和实现数据处理流程的,这里我们 再深入思考一下,为什么Spark能够替代MapReduce成为主流的大数据处理框架呢?对比MapReduce,Spark究竟有哪些优势?

一 优势

1 通用性:

        基于函数式编程思想,MapReduce将数据类型抽象为,k,v格式,并将数据处理操作抽象为map()和 reduce()两个算子,这两个算子可以表达一大部分数据处理任务。因 此,MapReduce为这两个算子设计了固定的处理流程map—Shuffle—reduce。
        但到数据处理流程其实多种多样,map—Shuffle—reduce模式只适用于表达类似foldByKey()、 reduceByKey()、aggregateByKey()的处理流程,而像cogroup()、join()、cartesian()、coalesce()的流程需要更灵活的表达方式。

Spark在两方面进行 了优化改进:

1)将输入/输出、中间数据抽象表达为一个数据结构RDD,相当于在Java中定义了class,然后可以根据不同类型的中间数据,生成不同的RDD(相当于Java中生成不同类型的object)。中间数据变得可定义、可表示、可操作、可连接。

2)通过可定义的数据依赖关系来灵活连接中间数据。在MapReduce中,数据依赖关系只有ShuffleDependency。而Spark数据处理操作包含了多种多样的数据依赖关系,Spark对这些数据依赖关系进行了分类&

http://www.lryc.cn/news/124004.html

相关文章:

  • Android自定义侧滑Item
  • c++11 标准模板(STL)(std::basic_stringbuf)(三)
  • Nodejs 第九章(模块化)
  • shell之正则表达式及三剑客grep命令
  • LeetCode 热题 100 JavaScript--33. 搜索旋转排序数组
  • 并发编程 - 线程池中的常见面试题
  • 将多个单独的 Excel 文件合并成一个,并添加标题行
  • VPN pptp和l2tp协议破解
  • 4.3、Flink任务怎样读取Kafka中的数据
  • C语言实例_和校验算法
  • 安全加密框架图——Oracle安全开发者
  • Android databinding 被多次定义
  • 云原生周刊:Kubernetes v1.28 新特性一览 | 2023.8.14
  • 机器学习之分类模型
  • 学习Vue:创建第一个Vue实例
  • JavaFx基础学习【二】:Stage
  • C语言——动态内存函数(malloc、calloc、realloc、free)
  • Redis数据结构——Redis简单动态字符串SDS
  • 【计算机网络】TCP协议超详细讲解
  • Salesforce特别元数据部署技巧
  • [前端系列第2弹]CSS入门教程:从零开始学习Web页面的样式和布局
  • 非计算机科班如何丝滑转码?
  • 亿发创新中医药信息化解决方案,自动化煎煮+调剂,打造智能中药房
  • Vulnhub: MoneyBox: 1靶机
  • [国产MCU]-BL602开发实例-LCD1602 I2C驱动
  • AI 绘画Stable Diffusion 研究(七) 一文读懂 Stable Diffusion 工作原理
  • URLSearchParams:JavaScript中的URL查询参数处理工具
  • 1.4 数据库管理与优化
  • T113-S3 Tina-Linux -- 2.开发板使用
  • Django-配置邮箱功能(一):使用django自带的发送邮件功能