master第一步是加载系统定义的环境变量,如worker的超时时间、系统保留的Application数目等;第二步,加载worker的信 息,地址、id等;第三步,加载Application的信息,例如运行地址、等待的Application、完成的Application等;第四步, 加载驱动的信息,driver的信息用来帮助调度;第五步,启动监控端口和webUI。

1、prestart():启动前文所述的加载信息,打印log信息。

2、preRestart():重新启动master。

3、postStop():关闭webUI、ApplicationMetricsSystem应用测度系统等服务。

4、receiveWithLogging():master的功能函数,包括处理worker申请请求、变更驱动器状态、处理心跳反应等等。一般不会对这些做出更改。

5、beginRecovery()和comleteRecovery():对app、driver和worker进行恢复处理。

6、scheduler():当新的app加入或者可用资源发生变化时,调用scheduler方法重新为等待的app分配资源(默认采用FIFO调度方式)。分配app给节点时,先尽量分配所有的core,然后再分配节点,这样可以分配尽量少的节点。

7、launchExecutor():在worker中添加新的Executor。

8、registerWorker():注册worker,同时清除该worker所在节点的无反应的worker的信息或者对其重新注册(也就是说,一个node上可能有很多个worker咯)。

9、removeWorker():移除worker。

10、其他对app和driver进行管理的方法,如create、register、complete等。