1.本地模式(单机)
本地模式就是以一个 独立的进程 ,通过其内部的 多个线程来模拟 整个Spark运行时环境
2.Standalone模式(集群)
Spark中的各个角色以 独立进程 的形式存在,并组成Spark集群环境
3.Hadoop YARN模式(集群)
Spark中的各个角色 运行在 YARN 的容器内部 ,并组成Spark集群环境
4.Kubernetes模式(容器集群)
Spark中的各个角色 运行在 Kubernetes 的容器内部 ,并组成Spark集群环境
5.云服务模式(运行在云平台上)
spark运行模式图解:
Spark中由4类角色组成整个Spark的运行时环境
. Master角色,管理整个集群的资源
类比与YARN的ResouceManager
. Worker角色,管理单个服务器的资源
类比于YARN的NodeManager
.Driver角色,管理单个Spark任务在运行的时候的工作
类比YARN日的ApplicationMaster
Executor角色,单个任务运行的时候的一堆工作者,干活的.类比于YARN的容器内运行的TASK
从2个层面划分:资源管理层面:
。管理者: Spark是Master角色,YARN是ResourceManager。工作中: Spark是Worker角色,YARN是NodeManager从任务执行层面:
·某任务管理者: Spark是Driver角色,YARN是ApplicationMaster
·某任务执行者: Spark是Executor角色,YARN是容器中运行的具体工作进程。
Spark On Yarn的本质?
Master角色由YARN的ResourceManager担任.Worker角色由YARN的NodeManager担任.
Driver角色运行在YARN容器内或提交任务的客户端进程中真正干活的Executor运行在YARN提供的容器内。
重点:
Spark On Yarn两种模式:
Client模式和Cluster模式最最本质的区别是:Driver程序运行在哪里。
Client模式:学习测试时使用,生产不推荐(要用也可以,性能略低,稳定性略低)
1.Driver运行在Client上,和集群的通信成本高。
2.Driver输出结果会在客户端显示
Cluster模式:生产环境中使用该模式
1.Driver程序在YARN集群中,和集群的通信成本低
2.Driver输出结果不能在客户端显示
3.该模式下Driver运行ApplicattionMaster这个节点上,由Yarn管理,如果出现问题,yarn会重启ApplicattionMaster(Driver)
所以在spark on yarn中提高资源利用率,在已有YARN的场景下让Spark收到YARN的调度可以更好的管控资源提高利用率并方便管理。