dremio SystemStoragePluginInitializer 简单说明

以前在关于ManagedStoragePlugin部分,简单说明了下SystemStoragePluginInitializer,今天再明确说明下

SystemStoragePluginInitializer 的特点

  • 继承自Initializer接口,可以实现一些轻量级服务的启动
  • SystemStoragePluginInitializer 的启动是通过InitializerRegistry 类实现的,InitializerRegistry 实现了service 接口,dremio启动的时候会自动启动(start 方法)
  • InitializerRegistry 服务只能在协调节点运行,对于实现了Initializer接口的服务是通过动态类加载的机制创建并启动的
  • SystemStoragePluginInitializer 服务会进行集群角色的判断,比如是否运行在包含master 选举模式中,同时会加载不同的服务,包含了taskLeaderElection服务以及创建一些内部存储插件(pluginsCreation 方法处理的)
  • SystemStoragePluginInitializer 加载的存储插件比较多,包含了home,Acceleration,jobresult,sractch,download,metadata,gandiva,log,support

几个存储插件的创建

上边简单说了功能,以下简单说明下几个存储插件的加载,上边加载创建了不少存储插件,实际可以分为5大类,home,Acceleration,internal,meadata

  • HomeFileConf 
    核心是当前用户相关的,我以前简单介绍过可以查看
  • Acceleration 
    是关于dremio 反射相关的,我以前也简单介绍过可以查看
  • internal 
    此类实际上与反射以及home 是类似的设计
  • meadata 
    此类实际上与反射以及home 是类似的设计
  • gandiva 
    此类实际上与反射以及home 是类似的设计

备注: 以上存储插件都有一些特点,基于分布式存储实现,同时都实现了一个方法create,方便创建source

说明

实际上dremio SystemStoragePluginInitializer 初始化的一些存储插件是类似的,同时dremio 新版本中我们看到的基本也是一致的,而且基本都存储在分布式存储中了,可以说就是一个统一的存储插件,以上是一个简单说明,方便大家对于dremio对于分布式存储中存储的数据有一个了解

参考资料

dac/backend/src/main/java/com/dremio/dac/daemon/SystemStoragePluginInitializer.java
dac/backend/src/main/java/com/dremio/dac/daemon/DACDaemonModule.java
dac/backend/src/main/java/com/dremio/dac/homefiles/HomeFileConf.java
common/legacy/src/main/java/com/dremio/service/InitializerRegistry.java
com/dremio/service/reflection/materialization/AccelerationStoragePluginConfig.java
sabot/kernel/src/main/java/com/dremio/exec/store/dfs/InternalFileConf.java
https://www.cnblogs.com/rongfengliang/p/17027256.html
https://www.cnblogs.com/rongfengliang/p/16801083.html
https://www.cnblogs.com/rongfengliang/p/17020668.html

posted on 2024-02-16 08:01  荣锋亮  阅读(1)  评论(0编辑  收藏  举报

导航