mapreduce

mapreduce是多进程模型,一个job就是一个进程
每个Task运行在一个独立的JVM进程中;
可单独为不同类型的Task设置不同的资源量,目前支持内存和CPU两种资源;
每个Task运行完后,将释放所占用的资源,这些资源不能被其他Task复用,即使是同一个作业相同类型的Task。也就是说,每个Task都要经历“申请资源—> 运行Task –> 释放资源”的过程
进程特点决定了启动一个Task将是一个很expensive的操作,对于迭代计算而言,无疑是噩梦。

spark


每个节点上可以运行一个或多个Executor服务。每个应用程序在一个工作者节点上只会有一个Executor。多个应用程序则会有多个Executor
每个Executor配有一定数量的slot,表示该Executor中可以同时运行多少个ShuffleMapTask或者ReduceTask;
每个Executor单独运行在一个JVM进程中,每个Task则是运行在Executor中的一个线程
同一个Executor内部的Task可共享内存,比如通过函数SparkContext.broadcast广播的数据如文件或者数据结构只会在每个Executor中加载一次,而不会像MapReduce那样,每个Task加载一次
Executor一旦启动后,将一直运行,且它的资源可以一直被Task复用,直到Spark程序运行完成后才释放退出

MR优化

如何提高MR的运行速度?
mr优化主要是如何控制map task的数量以及reduce task的数量

Spark优化

提高spark运行速度,就是需要 提高单位时间执行的task的数量.
而单位时间执行的task的数量取决于executor的数量* cores的数量
所以可以采取

  • 提高executor的数量
  • 增加每个executor的cores数量
  • 增加每个executor的内存数量
    当然,也不能浪费.比如150个task,最多50个executor*3个core就足够了.

mapreduce task与spark task对比相关推荐

  1. spark task 任务状态管理

    spark task 任务状态管理 spark task 的任务状态经常进行更新,当任务完成后,这个任务是怎么取得结果的呢,看下面的代码流程 def statusUpdate(tid: Long, s ...

  2. 大数据入门:Flink和Spark简单对比

    在大数据实时处理框架上,Spark和Flink都有着强大的数据处理能力,因此也就常常被人拿来做对比.Spark和Flink在处理数据上都能实现流式计算.实时分析,那么两者之间有何异同呢?下面我们来做一 ...

  3. Task.Run vs Task.Factory.StartNew

    Task.Run 和 Task.Factory.StartNew 都可以把一段要执行的代码放到ThreadPool thread中去执行.Task.Factory.StartNew是.Net 4.0中 ...

  4. Task.CompletedTask和Task.Result小记

    在任何返回Task的方法中,如果可以在不进行异步的情况下计算结果,则最好避免使用Task.Run.例如,一个简短的计算函数,或者测试中返回了一个预先计算过的结果,则无需使用Task.Run. 例如,定 ...

  5. 【转】1.C Task.CompletedTask和Task.Result小记

    在任何返回Task的方法中,如果可以在不进行异步的情况下计算结果,则最好避免使用Task.Run.例如,一个简短的计算函数,或者测试中返回了一个预先计算过的结果,则无需使用Task.Run. 例如,定 ...

  6. Spring的任务调度@Scheduled注解——task:scheduler和task:executor的解析

    Spring的任务调度@Scheduled注解--task:scheduler和task:executor的解析 applicationContext 的配置如下: <?xml version= ...

  7. 关于Spring 任务调度之task:scheduler与task:executor配置的详解

    关于Spring 任务调度之task:scheduler与task:executor配置的详解 其实就是Spring定时器中配置文件中一些配置信息,由于笔者自己是头一次使用,有些配置详细不太明白,随即 ...

  8. Task.Run Vs Task.Factory.StartNew z

    在.Net 4中,Task.Factory.StartNew是启动一个新Task的首选方法.它有很多重载方法,使它在具体使用当中可以非常灵活,通过设置可选参数,可以传递任意状态,取消任务继续执行,甚至 ...

  9. linux 上下文切换时对用户task和内核task区别对待——针对fpu

    目录 关于pthread和kthread的说明 和kthread/pthread区别对待相关的数据结构 调用图 fpu load/store 在调度中的处理 fpu load/store 在KVM中的 ...

最新文章

  1. 计算机组装cpu用哪种好,教你电脑处理器哪款好
  2. 基于vue的移动web app页面缓存解决方案
  3. 客户关系管理系统部分代码实现
  4. [云炬ThinkPython阅读笔记]2.5 运算顺序
  5. 【天工Godwork精品教程】任务一:创建工程(导入相片、编辑相机参数、导入POS)
  6. 终极结束进程方法API
  7. string.Format格式化输出
  8. (王道408考研操作系统)第三章内存管理-第一节3:覆盖与交换
  9. html5怎么设置li向下移,请问如何实现鼠标移到li上改变另一个div的样式
  10. Android 简单实现控件的拖动
  11. 服务器的运行速度突然变慢的原因一般有如下几个方面:
  12. 南阳理工acm,水仙花数
  13. FME将ArcGIS符号化转为CAD填充
  14. Markdown入门指南【我为什么要推荐你学习Markdown?】
  15. linux主流ftp server,Linux下常用的Ftp Server
  16. 如何在微信小程序里面退出小程序
  17. 白金域名你了解多少?
  18. php生成字母头像,Identicon:实现根据用户账号生成像素头像php版
  19. Python如何删除多余的空格与空行(有代码)
  20. Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)

热门文章

  1. android 多线程 崩溃,Android异常崩溃捕获
  2. springboot15 集成Druid(德鲁伊)
  3. 嵌入式Linux开发笔试,嵌入式Linux工程师笔试题
  4. java8的stream特性_Java8新特性介绍:Stream API
  5. apache poi使用例_4.Apache POI使用详解
  6. sql 最外层传值给最内层查询_腾讯云高级工程师如何玩转PG查询处理与执行器算法...
  7. java三色球问题_2020100期专业玩彩双色球走势分析
  8. python判断音频是问句_Gamma Lab:让机器回答一个自然语言问题需要几步?
  9. iis设置首页为main.html,遇到X-Frame-Options头未设置"怎么解决
  10. android怎么增量编译,Android Transform增量编译