开发者社区 问答 正文

Mapreduce和Spark的区别是什么?

Mapreduce和Spark的区别是什么?

展开
收起
芯在这 2021-12-06 23:38:58 258 分享 版权
1 条回答
写回答
取消 提交回答
  • hadoop的一个作业:job job分为map task和reduce task,每个task都是在自己的进程中运行的 当task结束时,进程也会结束

    spark用户提交的任务:application 一个application对应一个sparkcontext,app中存在多个job 每触发一次action操作就会产生一个job 这些job可以并行或串行执行 每个job中有多个stage,stage是shuffle过程中DAGSchaduler通过RDD之间的依赖关系划分job而来的 每个stage里面有多个task,组成taskset有TaskSchaduler分发到各个executor中执行 executor的生命周期是和app一样的,即使没有job运行也是存在的,所以task可以快速启动读取内存进行计算。

    hadoop的job只有map和reduce操作,表达能力比较欠缺 在mr过程中会重复的读写hdfs,造成大量的io操作,多个job需要自己管理关系。

    spark的迭代计算都是在内存中进行的 API中提供了大量的RDD操作如join,groupby等 通过DAG图可以实现良好的容错

    2021-12-06 23:39:40
    赞同 展开评论