关于spark:Spark-Standalone部署模式

42次阅读

共计 911 个字符,预计需要花费 3 分钟才能阅读完成。

Standalone 部署模式有两种,一个是 client 模式,一个是 cluster 模式,其中 client 模式是默认的。

client

某个能够连 Spark 集群的服务器,通过 spark-submit 的 shell 脚本,启动 SparkSubmit 的时候,就会创立一个 Application。

这个 Application 里会有 ClientEndpoint 和集群管理器进行对话,还有一个 DriverEndpoint,用于 Worker 的 Executor 进行对话,所以咱们这个 Application 是和 SparkSubmit 同一个过程的。

cluster

cluster 也是某个能够连 Spark 集群的服务器,通过 spark-submit 的 shell 脚本,启动 SparkSubmit 的时候,会创立一个与 Master 通信的 RPC 服务。

这个 RPC 服务,就是向 Master 申请 Driver 资源。

Master 收到申请 Driver 的申请后,就会创立一个 Driver 信息,保留在内存中,并把 Driver 长久化,便于故障转移复原。

Master 发现此时有个 Worker 的 CPU 和内存,够启动 Driver,于是让发信息给这个 Worker 让他去启动,并且回复给 SparkSubmit 说曾经创立好 Driver 了,并且把 driverId 给 SparkSubmit。

SparkSubmit5 秒后,会那着这个 driverId 去验证一下是否无效,如果有效,则敞开以后过程。

Worker 收到信息后,就会下载用户指定的 Jar 文件,通过这个 jar 文件开启一个过程,创立 Driver,这个 Driver 会依据反射,启动 Application。

前面的流程就跟下面 client 一样了,Application 里会有 ClientEndpoint 和集群管理器进行对话,还有一个 DriverEndpoint,用于 Worker 的 Executor 进行对话。

所以 client 和 cluster 的区别是,clien 的 Application 是间接在提交程序的过程里,而 cluster 是在 worker 的某个过程里。

源码思维导图

SparkSubmit
SparkSubmit 音讯
master- 解决音讯
Worker- 解决信息

正文完
 0