对Spark2.2.0文档的学习1-Cluster Mode Overview
Cluster Mode Overview
Link:http://spark.apache.org/docs/2.2.0/cluster-overview.html
Spark应用(Applications)作为独立的进程运行在集群中。
Driver程序中持有SparkContext对象,集群中运行Spark应用的步骤:
(1)SparkContext连接Cluster Manager(Spark自己的Standalone cluster manager,Mesos,YARN,Kubernetes since 2.3),集群管理器的作用是为不同应用分配资源。
(2)连接到CM之后,Spark请求集群节点中的executors,executors为应用进行计算和存储数据
(3)将应用的代码(JAR或者Python文件)传递给SparkContext,SparkContext将应用的代码传递给executors
(4)SparkContext将Tasks发送给executors执行。
Note:
(1)各个Spark应用有自己独立的执行执行进程(executor processes),因此不把数据写回外部存储,各个Spark应用(instances of SparkContext)无法共享数据.
(2)Spark is agnostic to the underlying cluster manager.
(3)Driver程序在整个生命周期都要监听并接受它的executors的连接。
(4)Driver运行的节点应该尽可能与worker节点物理上接近。