Spark的worker运行分析

来源:互联网 发布:c语言函数声明的标准 编辑:程序博客网 时间:2024/06/16 00:59

Master在启动的时候,会调用LaunchDriver和LaunchExecutor方法,要求Worker启动Driver和Executor。
在Worker内部,接收到消息后,会调用DriverRunner,它的内部启动了一个线程,去创建Driver的工作目录,创建好工作目录后,封装启动Driver的命令,用ProcessBuilder启动Driver。Worker启动Driver的一个基本原理,最核心的就是Worker内部会启动一个线程,就是DriverRunner,然后DriverRunner会负责启动Driver进程,并在之后对Driver进程进行管理。
在Worker内部,接收到消息后,还会调用ExecutorRunner,它的内部启动了一个线程,去创建Executor的工作目录,创建好工作目录之后,封装启动Executor的命令,用ProcessBuilder启动Executor。
Executor启动起来后,会找到对应的Driver去注册自己。
Worker启动Executor,其实和Driver的原理是一致的,都是通过一个Worker内部的本地线程,也就是ExecutorRunner,去启动Executor进程,然后在之后对Executor进程进行管理。

0 0
原创粉丝点击