1

之前在分布式高可用集群安装中,可以看到这个集群是主从架构,在Spark集群方式中,叫做Standalone集群。
主节点叫做Master,Master除了对Worker、Application、Driver等管理外,还要负责对整个集群中所有资源的统一管理和分配。这篇主要还是讲对Worker的管理。
Worker是工作节点,他会把自身的资源信息,比如CPU、内存大小等提供给Master,由Master对Worker的资源进行调度。

流程

集群启动的时候,只有Master节点,为了能够对各个Worker进行管理,Worker启动的时候需要向Master进行注册,把自己的信息,包括Ip信息、端口、CPU、内存大小等,注册到Master,这样Master就可以知道这个Worker的具体情况。
image.png
Master接收到Worker的注册请求后,就会把Worker的信息放入内存中,便于资源的分配以及调度,并且为了容灾考虑,把Worker的信息进行了持久化,这样新选举出来的Master能够从持久化中读取Worker的数据,而不用担心上一个Master节点中的内存数据丢失。
image.png
Master处理完Worker请求后,就会发信息告知Worker已经注册,Worker就会把Master的信息保存在内存中。
image.png
为了保证Master知道自己是存活的,于是worker每隔15秒开始发送心跳给Master。这个Master的信息就是上面一步保存在内存的信息。Master收到心跳信息后,就会更新Worker的最后心跳时间。
image.png
除了Worker主动发送心跳告知Master自己的状态是存活的,Master也会每隔60秒去检查内存中Worker的集合,把最后心跳时间超过60秒的筛选出来,把这些Worker从内存以及持久化中移除。
image.png

源码思维导图

master启动
worker启动并注册到master
master-处理消息
Worker-处理信息


大军
847 声望183 粉丝

学而不思则罔,思而不学则殆