为何咱们生产上要选择Spark On Yarn?shell
开发上咱们选择local[2]模式
生产上跑任务Job,咱们选择Spark On Yarn模式 ,缓存
将Spark Application部署到yarn中,有以下优势:分布式
1.部署Application和服务更加方便ide
- 只须要yarn服务,包括Spark,Storm在内的多种应用程序不要要自带服务,它们经由客户端提交后,由yarn提供的分布式缓存机制分发到各个计算节点上。
2.资源隔离机制spa
- yarn只负责资源的管理和调度,彻底由用户和本身决定在yarn集群上运行哪一种服务和Applicatioin,因此在yarn上有可能同时运行多个同类的服务和Application。Yarn利用Cgroups实现资源的隔离,用户在开发新的服务或者Application时,不用担忧资源隔离方面的问题。
3.资源弹性管理orm
- Yarn能够经过队列的方式,管理同时运行在yarn集群种的多个服务,可根据不一样类型的应用程序压力状况,调整对应的资源使用量,实现资源弹性管理。
Spark On Yarn有两种模式,一种是cluster模式,一种是client模式。队列
运行client模式:进程
- “./spark-shell –master yarn”
- “./spark-shell –master yarn-client”
- “./spark-shell –master yarn –deploy-mode client”
运行的是cluster模式资源
- “./spark-shell –master yarn-cluster”
- “./spark-shell –master yarn –deploy-mode cluster”
client和cluster模式的主要区别:a. client的driver是运行在客户端进程中b. cluster的driver是运行在Application Master之中开发