首页 > 其他分享 >spark的shuffle和mapreduce的shuffle的区别

spark的shuffle和mapreduce的shuffle的区别

时间:2023-11-26 12:55:37浏览次数:27  
标签:Map shuffle reduce mapreduce MR spark 排序 Spark

  1. 功能上,MR的shuffle和Spark的shuffle是没啥区别的,都是对Map端的数据进行分区,要么聚合排序,要么不聚合排序,然后Reduce端或者下一个调度阶段进行拉取数据,完成map端到reduce端的数据传输功能。
  2. 方案上,有很大的区别,MR的shuffle是基于合并排序的思想,在数据进入reduce端之前,都会进行sort,为了方便后续的reduce端的全局排序,而Spark的shuffle是可选择的聚合,特别是1.2之后,需要通过调用特定的算子才会触发排序聚合的功能。
  3. 流程上,MR的Map端和Reduce区分非常明显,两块涉及到操作也是各司其职,而Spark的RDD是内存级的数据转换,不落盘,所以没有明确的划分,只是区分不同的调度阶段,不同的算子模型。
  4. 数据拉取,MR的reduce是直接拉去Map端的分区数据,而Spark是根据索引读取,而且是在action触发的时候才会拉去数据。
  5. HashShuffle,虽然MR和shuffle读都会进行HashShuffle,但是如果在shuffle读没有combine操作的时候同时分区数少于设定的阈值,则不会在HashMap的时候预先对分区中所有的健值对进行merge和sort,从而省下了排序过程。
 

 

标签:Map,shuffle,reduce,mapreduce,MR,spark,排序,Spark
From: https://www.cnblogs.com/guoyu1/p/17856750.html

相关文章

  • spark的excutor是动态的资源分配吗,还是写死的?
    在ApacheSpark中,Executor的资源分配可以是动态的,而不是写死的。ApacheSpark提供了一种称为动态资源分配(DynamicAllocation)的机制,允许根据应用程序的实际需求动态调整Executor的数量。动态资源分配的主要思想是根据当前应用程序的工作负载来增加或减少Executor的数......
  • HDFS与MAPREDUCE操作
     HDFS文件操作在分布式文件系统上验证HDFS文件命令,如下。hadoopfs[genericOpitions][-ls<path>] //显示目标路径当前目录下的所有文件[-lsr<path>] //递归显示目标路径下的所有目录及文件(深度优先)[-du<path>] //以字节为单位显示目录中所有文件的大小,或该文......
  • Apache Spark 认证绕过漏洞(CVE-2020-9480)研究
    一、ApacheSpark简介Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。项目是用Scala进行编写。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含Spa......
  • Spark Streaming快速入门
    SparkStreaming快速入门一、简介SparkStreaming是构建在SparkCore基础之上的流处理框架(但实际上是微批次处理框架),是Spark非常重要的组成部分。严格意义上来讲,SparkStreaming是一个准实时,微批次的流处理框架。特点:Easytouse:简单易用;Unifiedbatchandstreami......
  • Spark SQL快速入门
    SparkSQL快速入门1、概述sparkSQL是Apache用于处理结构化数据的模块。其中包含SQL、DataFrameAPI、DataSetAPI,意味着开发人员可以在不同的API之间来回切换,从而使数据处理更加灵活。SparkSQL(Sparkonhive)数据兼容方面SparkSQL不但兼容HIve,还可以从RDD、Parquet文......
  • Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
    原文链接:https://tecdat.cn/?p=34286原文出处:拓端数据部落公众号分析师:ShichaoZhong项目挑战如何处理庞大的数据集,并对数据进行可视化展示;在后续分析中特征选择是重点之一,要根据事实情况和数据易处理的角度来筛选变量解决方案任务/目标根据已有的车祸数据信息,计算严重车祸......
  • Spark优化
    意识篇类型转换优化前:valextractFields:Seq[Row]=>Seq[(String,Int)]={(rows:Seq[Row])=>{varfields=Seq[(String,Int)]()rows.map(row=>{fields=fields:+(row.getString(2),row.getInt(4))}) fields}}优化后:valextr......
  • 开始pyspark------------jupyter notebook 读取CSV文件
    1开始pyspark  1查看版本信息¶ In [1]:importsysprint(sys.version_info)  sys.version_info(major=3,minor=11,micro=5,releaselevel='final',serial=0) In [2]:importosprint("ThevalueofSPARK_H......
  • 解决shiny 中DT无法渲染sparkline样式
    library(shiny)library(DT)library(sparkline)library(tidyverse)data(iris)library(htmlwidgets)cb<-htmlwidgets::JS('function(){debugger;HTMLWidgets.staticRender();}')ui<-fluidPage(htmlwidgets::getDependency('sparkline�......
  • 基于Spark的共享单车数据存储系统的设计与实现-计算机毕业设计源码+LW文档
    摘 要近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,共享单车数据存储系统利用计算机网络实现信息化管理,使整个共享单车数据存储管理的发展和服务水平有显著提升。本文拟采用java技术和Springboot搭建系统框架,后台使用MySQL数据库进......