首页 > 其他分享 >dremio SystemStoragePluginInitializer 简单说明.

dremio SystemStoragePluginInitializer 简单说明.

时间:2024-02-16 09:03:35浏览次数:25  
标签:dremio 插件 SystemStoragePluginInitializer 存储 简单 main com

以前在关于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

标签:dremio,插件,SystemStoragePluginInitializer,存储,简单,main,com
From: https://www.cnblogs.com/rongfengliang/p/18016005

相关文章

  • 快速部署最简单的 Git 服务 Gogs
    前面介绍了Gitlab的搭建,功能很强大,无论是cpu还是内存,要求机器的配置要高一些。如果没有比较高的机器配置,只使用最常用的Git代码托管功能,那么就使用Gogs来快速部署吧。Gogs是一款极易搭建的自助Git服务。旨在打造一个以最简便的方式搭建简单、稳定和可扩展的自助Git......
  • javascript import export 简单示例
    概述import是ES6引入的新特性,它允许你以声明式的方式导入其他模块中的内容。require是Node.js中的特性,它允许你使用一个函数来加载和导入其他模块。使用方法utils.jsexportconstadd=(a,b)=>a+b;exportconstsubtract=(a,b)=>a-b; index.jsimport*asutilsfrom......
  • Jsoup的快速使用--简单实用
    Jsoup的使用通常分为四步:1.导入jar包2.加载XML文档进内存,获取DOM树对象Document2.1获取类加载器ClassLoaderclassLoader=Demo1.class.getClassLoader();2.2使用类加载器找到XML文档的路径Stringpath=classLoader.getResourc......
  • 简单字符(串)输出:转义符应用
     即?*&\!_//\a@\\\r\n!//\\"_"/\\^!~zZ#include<stdio.h>intmain(){chara,b,c,d,e,f,g,h,i,j,o;a='?';b='*';c='&';d='\\';e='!';f=......
  • 如何提升技术?-(GPT的标准回答,其实很多道理都是藏匿于看似简单、朴素的道理之中,只不过是
    快速提升技术需要多方面的努力和实践。以下是一些建议:明确目标:首先,你需要明确你想要提升的技术领域和目标。这样你才能有针对性地进行学习和实践。制定学习计划:制定一个详细的学习计划,包括要学习的知识点、实践项目、学习时间表等。这有助于你系统地掌握技术知识。深入学习:深入......
  • extism cli 模式简单试用
    安装clicurlhttps://get.extism.org/cli|shcli模式运行官方提供了一个示例项目,可以快速体验命令PLUGIN_URL="https://github.com/extism/plugins/releases/latest/download/count_vowels.wasm"extismcall$PLUGIN_URLcount_vowels--i......
  • 三十、简单的验证码实现
    check_code.py(需要字体文件:Monaco.ttf)importrandomfromPILimportImage,ImageDraw,ImageFont,ImageFilter_letter_cases="abcdefghjkmnpqrstuvwxy"#小写字母,去除可能干扰的i,l,o,z_upper_cases=_letter_cases.upper()#大写字母_numbers=''.join(ma......
  • 【机器学习】机器学习简单入门
    ......
  • Python--变量和简单数据类型
    Python--变量和简单数据类型变量的命名和使用1.变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。1_message="helloworld"#错误写法message_1="helloworld"#正确写法2.变量名不能......
  • loguru简单使用
    1.安装pipinstallloguru2.简单使用fromloguruimportloggerlogger.debug("xxx")logger.info("xxx")logger.waring("xxx")...3.add函数logger的add函数可以配置Handler、Formatter、Filter等。示例:importsysfromloguruimportloggerlogger.add(sys.stde......