master的启动
2016-10-28 17:21:41 0 举报
当启动master时,计算机会执行一系列复杂的操作。首先,它会加载操作系统的核心组件,包括内核和驱动程序。接下来,它会加载必要的系统服务和应用程序。然后,它会启动网络连接,以便与其他计算机进行通信。最后,它会等待用户输入命令来执行特定的任务。这个过程可能需要几分钟的时间,具体取决于计算机的性能和配置。总之,启动master是一个复杂而重要的过程,它为计算机提供了运行所需的一切。
作者其他创作
大纲/内容
setupEndpoint创建Master的endpoint
开启周期性任务,定期的检测连接的worker是否超时超时参数由spark.worker.timeout确定,同时worker会每隔1/4个周周期会上报一次心跳;master检测到worker超时后,会将其上的driver和executor标识为ERROR同时会发送ExecutorLost的消息给对应的driver如果driver是supervise,master会重新启动调度当条件满足时在另外的worker上启动如果超过spark.dead-worker.persisence+1个周期(默认是16),master会直接移除worker,如果此时worker的心跳上来,master会回复ReconnectWorker的消息让其重新注册
StandaloneRestServer
返回RpcEnv用于构建后续的endpoint
start-master.sh
onStart开启初始化操作
解析spark-env.sh环境变量解析spark-default.properties中的变量
调用main函数
创建zookeeperAgent对象,开启对zk的监听,监听的路径为/spark/leader_electionSESSION的超时时间为1分钟,连接超时为15S
创建一个RpcEnvspark1.6之后默认实现改为了NettyRpcEnvFactory
RpcEnvFactory
选择成为Leader
beginRecovery
Master
ZookeeperLeaderElectionAgent
从持久层中读取worker、driver、app的列表分别给worker、driver发送MasterChanged消息,通知其master地址发生拉了切换,worker接受到消息后,恢回复WorkerSchedulerStateResponse上报在该Worker上的所有driver和executor,master收到响应后更新内存中的driver的状态;app回复MasterChangeAcknowledge消息来更新app的状态
NettyRpcEnv
electedLeader
MatserWebUI
bind开启webUI的绑定用于后续访问master的web页面
启动REST服务用于cluster模式下driver的提交
0 条评论
下一页