spark与Hadoop的区别

时间:2019-08-28
本文章向大家介绍spark与Hadoop的区别,主要包括spark与Hadoop的区别使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1. Mapreduce和Spark的相同和区别

  • 两者都是用mr模型来进行并行计算
  • 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图可以实现良好的容错

原文地址:https://www.cnblogs.com/hdc520/p/11425177.html