首页 > 其他分享 >03-Spark的计算流程设计

03-Spark的计算流程设计

时间:2022-08-14 21:45:14浏览次数:60  
标签:03 Map 流程 RDD 分片 Spark 数据 分区

MR的计算流程设计

  • step1:读取数据:Input
    • 功能一:实现分片,将读取到的数据进行划分,将不同的数据才能分给不同Task
    • 功能二:转换KV
  • step2:处理数据:Map、Shuffle、Reduce
    • Map:负责数据处理:一对一的转换,多对一的过滤
      • 功能一:构建分布式并行Task,每个分片对应一个MapTask【进程】
      • 功能二:每个MapTask负责自己处理的分片的数据的转换,转换逻辑由map方法来决定
    • Shuffle:负责数据处理
      • Map输出写入数据:磁盘
      • 功能:实现全局的:分区、排序、分组
      • Reduce读取Map输出的数据:读取磁盘
    • Reduce:负责数据处理:多对一的聚合
      • 功能:默认由一个ReduceTask【进程】来实现数据的聚合处理
  • step3:保存结果:Output
    • 功能:将上一步的结果写入外部系统

Spark的计算流程设计

  • step1:读取数据
    • 根据分片的规则,将数据源进行分片,每个分片作为一个数据分区
    • 整个数据的所有分区从逻辑上合并为一个整体,SparkCore中称之为RDD
    • 一个RDD就代表读取到的数据,这个数据由多个分区组成,每个分区数据存储在不同的机器的内存中
    • RDD可以理解为一个分布式的列表集合
    • |
    • 读取到的数据会放入一个RDD中,实际读取的数据会划分成多个分区,每个分区的数据在不同节点上
    • 操作RDD代表操作这个文件数据,RDD就是文件数据的集合,类似于一个列表
    • RDD是一个逻辑上的概念,只是代表一份数据,这份数据在物理上被分成了多个分区,存储在不同的节点上
  • step2:处理数据
    • 对RDD调用函数进行处理,Spark底层就会启动多个Task【线程】对这个RDD的每个分区来进行并行处理
    • 处理流程由代码中的函数决定,可以有多个Map和多个Reduce阶段
    • 如果不经过Shuffle,上一步处理后的结果可以存储在内存中,直接供下一步进行计算
  • step3:保存结果
    • 将每个Task计算的结果进行输出保存

为什么Spark比MR要快?

标签:03,Map,流程,RDD,分片,Spark,数据,分区
From: https://www.cnblogs.com/z-h-q/p/16586415.html

相关文章

  • Shell 从入门到精通 (五)流程控制(重点)
    1if判断1)基本语法(1)单分支if[条件判断式];then程序fi 或者  if[条件判断式]then程序fi 注意事项:①[条件判断式],中括号和条件判断式之......
  • 6.流程控制
    流程控制理论#什么是流程控制控制事物的执行流程#执行流程的分类1.顺序结构:从上往下依次执行2.分支结构:根据某些条件判断出不同的执行流程3.循......
  • week03-day05练习
    <script>//1,使用reduce求数组中所有元素的乘积,//vararr=[2,3,4,5,6,7]vararr01=[2,3,4,5,6,7];varresult=arr01......
  • 18第四章:03_延时消息
    一、延时消息当消息写入到Broker后,在指定的时长后才可被消费处理的消息,称为延时消息。采用RocketMQ的延时消息可以实现定时任务的功能,而无需使用定时器。典型的应用......
  • 【Linux】ps -ef|grep -v grep|awk '{print $2}' 命令详解
    前言在Linux中使用脚本命令时,经常见到ps-ef|grep-vgrep|awk'{print$2}'这一句命令前半部分的ps-ef|grep命令,相信经常接触Linux的人肯定明白,但是后半部分的两次gr......
  • 20220814 idea_SpringBoot_启动 jpa 启动 Access to DialectResolutionInfo canno
    1问题AccesstoDialectResolutionInfocannotbenullwhen'hibernate.dialect'notset 2解决方案2.1未解决直接用这个问题搜索,使用了很......
  • PySpark 大数据处理
    本文主要介绍Spark的一些基本算子,PySpark及SparkSQL的使用方法。虽然我从2014年就开始接触Spark,但几年来一直没有真正地学以致用,时间一久便忘了如何使用,直到在工作中用......
  • git clone 报错remote:Access denied The requested URL returned error:403
    gitcloneproject_URL命令向远程仓库克隆项目时遇到报错403   error403是服务器拒绝了终端的访问,是账户密码的问题,可是在客户端没有弹出需要输入账户密码的弹窗。......
  • Qt6.2 Widgets Application 解决 'ui_xxxx.h' file not found 问题
    参考【Qt】Qt登录对话框(设计器实现)error:‘ui_mainwindow.h‘filenotfound(ui头文件未创建)环境环境版本windows10QT6.2.4QtCreator8.0.1(C......
  • Young's theorem杨氏定理
    杨氏定理定理叙述参考百度百科。Young'sTheorem:Let\(f\)beadifferentiablefunctionof\(n\)variables.Ifeachofthecross-partials\(f_{ij}^{\prime\pr......