Spark on yarn和Hadoop on yarn的区别

区别1

Spark 的运行模式是多线程的而Hadoop的运行模式是多进程。

区别2

Hadoop的多进程是细粒度的能够控制每个每个任务资源占用的资源,加载的时候会耗用很长的时间,不适合做低延迟的类的作业,但是增加了业务的平稳性。而Spark的多线程模型多个任务可以运行在一个jvm进程(Executor)上,可以大大的缩短加载时间,但是造成了此进程内部资源的竞争,不能细粒度的控制每一个任务占用的资源。

区别3

对于hadoop的每一个任务都需要运行在一个独立的jvm进程中,每个task执行完毕后会释放被占用的资源,这些被占用的资源不能被其他的Task所复用,每一个Task都需要经过资源的申请,运行Task,释放资源,因此造成了Mapreduce需要消耗较多的时间。而Spark是多个任务可以同时运行在同一个jvm进程(Executor),在此进程中各个Task可以共享资源(内存和cpu),相对于Hadoop大大缩短了消耗的时间。

区别4

Hadoop和Spark都采用了异步并发模式,hadoop采用的是类似于Actor的的并发模式,实现方式是epoll+状态机,儿Spark采用的是开源的Akka,Akka实现了Actor模型,性能非常高。

区别5

同一个节点上所有的任务同时运行在一个进程中有利于资源的共享,适合内存密集型的任务,尤其是对于需要加载大量词典的应用程序,可以大大的节省内存。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容