master的开启,开启了master,会在本机开启master netty服务端,用来接收远程或者本地客户端发送数据,再对master服务进行绑定。
开启流程如worker的开启流程:https://blog.youkuaiyun.com/LinkStars/article/details/112982187 spark源码学习 -worker启动消息通信,inbox,outbox创建
netty 服务端发送消息:
master消息接收会存放到master 的inbox中,master 的inbox会不断轮询进行process,master端点处理消息,处理完成,首先master把消息放置到自己的outbox中,拿到远程端点ref,发送时,创建连接远程worker netty 客户端,去连接worker 的 netty 服务端,向其发送消息,远程再把消息放置worker 的inbox中。
不管master开启,worker 的开启以及executor开启都是会开启自己本地netty服务端。master和worker的开启时开启jvm进程,当worker中的executor(executor创建在worker jvm进程中开启线程,帮助开启子进程CoarseGrainedExecutorBackend)需要通信,是创建远程连接netty client端与其通信。
master类:
def main(argStrings: Array[String]): Unit = {
val (rpcEnv, _, _) = startRpcEnvAndEndpoint(args.host, args.port, args.webUiPort, conf)
rpcEnv.awaitTermination()
}
def startRpcEnvAndEndpoint( host: String, port: Int,webUiPort: Int, conf: SparkConf): (RpcEnv, Int, Option[Int]) = {
val rpcEnv = RpcEnv.cre

本文详细介绍了Spark Master和Worker在启动时如何通过Netty服务端进行通信。Master开启时会启动Netty服务端,接收并处理来自远程或本地客户端的数据。Worker启动时同样开启Netty服务端,而Executor在Worker的JVM进程中以线程形式运行,通过创建远程Netty客户端与Master通信。整个过程涉及了inbox和outbox的消息处理流程,确保了Spark集群内部的有效通信。
最低0.47元/天 解锁文章
1823





