上篇文章我们剖析了Master的原理和源码,知道了当Master使用资源分配算法将资源分配完成后,就会给对应的Worker发送启动Driver或者Executor的消息,那么Worker收到这些消息后,具体是怎么启动Driver或者Executor的呢?这篇文章就让我们深入剖析一下Worker的原理和源码。
一、启动Driver
- Worker接收到了Master发送过来的启动Driver的信息,LaunchDriver函数首先启动一个
DriverRunner线程。
worker.actor ! LaunchDriver(driver.id, driver.desc)
val driver = new DriverRunner(……)