首先启动master,然后启动所有worker。
1.worker启动后,在prestart方法中与worker建立连接,向master发送注册,将worker的信息通过case class封装起来发送给master。
2.master接收到worker的注册消息后,然后将worker的信息保存起来(持久化disk or zookeeper),然后向worker反馈注册成功
3. worker向master定期发送心跳(hdfs的话,除了心跳,datanode还要发送状态(几个副本之类的)给namenode)
4.master会定期清理超时的worker(避免再分配任务)
actorsystem是单例的,actorof实例化 actor
worker 在 preStart 方法中通过context.actorselection方法拿到master的引用,然后与master 通信