Spark 和 Hadoop 作业之间的区别

Hadoop中:

– 一个MapReduce程序就是一个job,而一个job里面可以有一个或多个Task,Task又可以区分为Map Task和Reduce Task

– MapReduce中的每个Task分别在自己的进程中运行,当该Task运行完时,进程也就结束

Hadoop中的MapReduce采用了多进程的的运行方式,因为独享进程空间,所以方便控制资源,但是消耗更多的启动时间,导致MapReduce时效性差,不适合运行那些低延时作业。

Spark中:

– Application:基于Spark的用户程序,包含了一个Driver Program 和集群中多个的Executor(job);

– Job:和MR中Job不一样。MR中Job主要是Map或者Reduce Job。而Spark的Job其实很好区别,一个action算子就算一个 Job,比方说count,first等

– Stage:是spark中独有的。一般而言一个Job会切换成一定数量 的stage。各个stage之间按照顺序执行

– task:任务最小的工作单元

 Spark中的同个节点中的所有任务运行在同一个进程中(Executor),任务启动速度快,由于共享内存空间,减少了和磁盘间的IO操作,适合低延迟、内存密集型任务。同样的由于同个节点中的所有任务运行在同一个进程中,可能会出现资源竞争,且线程之间相互影响导致Spark任务稳定性步入hadoop任务。

 

参考资料:

八斗大数据

 

posted @ 2020-04-09 21:24  xd_xumaomao  阅读(231)  评论(0编辑  收藏  举报