Part-I : 开发任务背景

Standalone 模式下为什么要支持构建任务设置 deployMode 为 cluster

对于 Kylin Job 节点,通常会有很多构建任务同时提交;在 client 模式下,每个正在运行的构建任务都会启动一个 Java 进程,并且这个 Java 进程包含了 Driver,可能会占用较多的内存资源和 CPU 资源,从而和 Kylin 节点抢占内存资源。为了摆脱该问题,可以考虑将 Driver 的运行提交到 Standalone Cluster 上去,从而使得构建任务更加稳定。

问题现象

我们尝试去通过修改"spark.submit.deployMode" 和 "spark.master=spark://xxx" 来进行功能验证;

第二步构建任务很快(0.14 分钟)结束,出现构建任务的状态出现错误,Cube 元数据错误,并且日志输出两个报错。

版本信息

错误信息

异常分析

  1. spark-submit 进程提前退出,并且进程的 exitcode 为 0, Kylin 进程误认为构建任务执行成功,标记任务为成功,执行后续步骤