dremio DacDaemonYarnApplication 简单说明

DacDaemonYarnApplication 属于dremio 通过twill 集成yarn 的应用指南定义,核心是实现了标准的TwillApplication接口
前边有简单说过twill 的运行,一个是通过实现TwillRunnable 接口的,还有一个就是实现TwillApplication

参考定义

如下图

 

 

DacDaemonYarnApplication 实现的功能

  • 构造函数生成运行的jar 文件
    通过AppBundleGenerator 服务生成的
  • 基于配置生成TwillSpecification
    实际上是接口中的configure 方法,主要包含了内存,cpu 以及个数的定义以及一些资源控制等
  • 提供环境定义

DacDaemonYarnApplication使用

YarnController 中的createPreparer 方法中,与标准apache twill 的玩法是一致的
参考代码

 
protected TwillPreparer createPreparer(YarnConfiguration yarnConfiguration, List<Property> propertyList) {
  AppBundleRunnable.Arguments discoveryArgs = new AppBundleRunnable.Arguments(
      YARN_BUNDLED_JAR_NAME,
      "com.dremio.dac.daemon.YarnDaemon",
      new String[] {});
 
  DacDaemonYarnApplication dacDaemonApp = new DacDaemonYarnApplication(dremioConfig, yarnConfiguration,
    new DacDaemonYarnApplication.Environment());
 
  TwillRunnerService twillRunner = startTwillRunner(yarnConfiguration);

说明

以上是一个简单的介绍,可以更好的了解dremio 与yarn 的集成机制

参考资料

provision/yarn/yarntwill/src/main/java/com/dremio/provision/yarn/DacDaemonYarnApplication.java
https://twill.apache.org/
https://github.com/apache/twill

posted on 2023-02-05 11:05  荣锋亮  阅读(18)  评论(0编辑  收藏  举报

导航