dremio ClusterCoordinator 服务简单说明

dremio ClusterCoordinator 主要是处理集群任务协商的,比如那些服务可以在什么节点上运行,以及对于查询具体这么执行,对于元数据应该如果存储以及
元数据如何进行刷新,同时还包含了节点的任务处理

相关实现类

目前官方包含了基于zk的软件运行模式,以及本地集群模式的,当然好包含了一个方便测试的NoOpClusterCoordinator,对于zk 的实现
官方给基于了apache curator 方便的java zk 工具(官方包装了一个ZKClusterClient 类,主要在ZKClusterServiceSetManager 实现中调用)
参考类图如下

 

 


备注: 可以看出实现了ClusterServiceSetManager以及ClusterElectionManager,实际上ZKClusterCoordinator 的处理都是调用了ZKClusterServiceSetManager 包装了类

ZKClusterServiceSetManager 的处理

上边也说明了ZKClusterServiceSetManager 是比较核心的类,同时也实现了ClusterServiceSetManager以及ClusterElectionManager,ZKClusterCoordinator 就是调用
的包装类方法,内部调用了ZKClusterClient 实现了dremio 标准service 接口,可以在启动的时候统一管理

  • 提供的主要功能 
    服务的创建(根据不同角色管理不同的服务),同时支持服务的发现&服务注册以及状态管理(参考ZKServiceSet,里边包含了不少实现) 
    同时提供选举机制(MasterElectionService以及TaskLeaderElection都会使用此能力进行服务的处理)对于TaskLeaderElection SystemStoragePluginInitializer以及LocalSchedulerService都会使用此服务,MasterElectionService 主要做为一个master node 状态管理服务

说明

dremio 的集群协调机制对于社区版目前来说主要是基于zk的,内部处理上包装了apache curator 客户端,dremio 因为包含了协调节点,不少服务都会依赖此模块,属于一个比较重要的服务,实际上我们也可以自己参考实现可以自己的协调服务,对于其他非集群运行的协调服务实现,具体可以参考实际的源码

参考资料

services/coordinator/src/main/java/com/dremio/service/coordinator/ClusterCoordinator.java
services/coordinator/src/main/java/com/dremio/service/coordinator/ClusterServiceSetManager.java
services/coordinator/src/main/java/com/dremio/service/coordinator/ClusterElectionManager.java
services/coordinator/src/main/java/com/dremio/service/coordinator/zk/ZKClusterServiceSetManager.java
services/coordinator/src/main/java/com/dremio/service/coordinator/zk/ZKClusterClient.java
services/coordinator/src/main/java/com/dremio/service/coordinator/AbstractServiceSet.java
services/coordinator/src/main/java/com/dremio/service/coordinator/zk/ZKServiceSet.java
dac/backend/src/main/java/com/dremio/dac/daemon/SystemStoragePluginInitializer.java
dac/backend/src/main/java/com/dremio/dac/service/exec/MasterElectionService.java
services/coordinator/src/main/java/com/dremio/service/coordinator/TaskLeaderElection.java
dac/backend/src/main/java/com/dremio/dac/daemon/SystemStoragePluginInitializer.java
services/coordinator

posted on 2023-01-21 17:59  荣锋亮  阅读(26)  评论(0编辑  收藏  举报

导航