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