本文介绍spark通讯的简单流程,通过本文也可以了解简单的spark任务执行流程
1.Master 启动成功后(开启线程定时检查Worker存活与否) ,启动Worker,这时候Worker与Master间进行通讯。通讯内容:向Master注册信息(包含一些自己电脑的配置情况,方便Master后续分配任务)
之后向 Master定时发送心跳包 用以报活。
2.当用户提交任务时,机器会启动driver(注意:这里机器可以使Master也可以使Worker也可以使其他机器),driver中的sparkcontext对象会和Master建立连接,把任务信息(包括启动任务时候设置多少个核还有内存来运行任务)告知Master。同时context创建好之后会构建dag(有向无环图),开始执行tarnsformation部分。
3.Master接收到任务消息,根据任务信息,找到合适的Worker向其发送任务请求。
4.Worker接收到来自Master的任务请求,建立Excutor来执行任务。
5.Excutor根据Driver -> Master -> Work