dremio DremioDaemon 简单说明

DremioDaemon 的核心是启动dremio服务同时进行一些依赖的注入

简单启动说明

  • 包含了自动更新处理(主要是kv 存储的,后边会介绍dremio 一些任务)
  • 查找DACModule创建类,并初始化内部包含的服务(不少是基于dremio 的service 机制启动的),等待jvm 退出,并处理一些runtime 的hook(主要是资源的释放处理)

参考代码

public static void main(String[] args) throws Exception {
    try (TimedBlock b = Timer.time("main")) {
      final DACConfig config = DACConfig.newConfig();
      final SabotConfig sabotConfig = config.getConfig().getSabotConfig();
      final ScanResult classPathScan = ClassPathScanner.fromPrescan(sabotConfig);
     // 对于master 节点,尝试直接自动升级(kv 存储相关的)
      if (config.isMaster) {
        // Try autoupgrade before starting daemon
        AutoUpgrade autoUpgrade = new AutoUpgrade(config, classPathScan);
        autoUpgrade.run(false);
      }
      // 查找DACModule 的配置类,并创建实例
      final DACModule module = sabotConfig.getInstance(DAEMON_MODULE_CLASS, DACModule.class, DACDaemonModule.class);
     // 模块创建DACDaemon,此模块实际上才是dremio 好多干活的地方
      try (final DACDaemon daemon = DACDaemon.newDremioDaemon(config, classPathScan, module)) {
       // 启动服务(一些实现service 的服务,以及启动以来的)
        daemon.init();
      // jvm 服务关闭资源释放是否的hook
        daemon.closeOnJVMShutDown();
        daemon.awaitClose();
      }
    } catch (final Throwable ex) {
      ProcessExit.exit(ex, "Failure while starting services.", 4);
    }
  }

说明

DremioDaemon 属于dremio 的入口实际上是比较重要的一个服务,同时此入口我们可以慢慢的了解dremio 个个模块的机制

参考资料

dac/daemon/src/main/java/com/dremio/dac/daemon/DremioDaemon.java
dac/backend/src/main/java/com/dremio/dac/daemon/DACDaemon.java

posted on   荣锋亮  阅读(25)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-01-19 Full Schema Stitching with Apollo Server
2019-01-19 GraphQL Gateway Architectures
2019-01-19 Modularizing your graphQL schemas
2018-01-19 sailsjs 不用写代码就能生成rest api 代码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示