在spark中的worker会定期想master进行心跳汇报,spark Master管理着所有的Worker信息(如,内存、executor占用情况等)。
本次试用akka+scala来模拟spark的Master和Worker的心跳检测信息,仅记录下曾经的夜晚。开始吧。
定义消息
因为主要模拟心跳检测信息,所以只定义了Master和Worker之间通信的消息:

Master定义

其中最主要的是receive方法接受远程消息:

Worker定义

其中最主要的receive方法来定期发送心跳到远程Master节点:

测试
-
先启动Master
master启动
-
再启动Worker
worker启动
-
再看Master
再看master
其中的0和1表示当前mater管理的worker数量。
本文只是简单模拟了下spark的Worker和Master的心跳检测。
项目地址:https://github.com/zapjone/akka-distribute
网友评论