集群配置
构建实例自动重启
AIR 支持对 Kyuubi Spark 引擎实例进行定时检测和自动重启,避免 Spark Driver 长时间运行导致内存泄漏或性能下降。
配置方式
编辑集群配置中对应的 ComputeUnit(buildComputeUnits)内添加 sparkManagerConfig 字段,或通过集群管理 API 更新配置。
配置项说明
| 配置项 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
kyuubiRestUrl |
String | 是 | - | Kyuubi REST API 地址,支持逗号分隔多个地址 |
yarnUrl |
String | 是 | - | YARN ResourceManager REST API 地址 |
maxRuntimeHours |
Integer | 否 | 24 | Spark 实例最大运行时长(小时),超过后触发重启 |
stopImmediately |
boolean | 否 | false | 立即停止模式:超时后直接停止并重启,不等待运行中的任务完成 |
stopGraceful |
boolean | 否 | false | 优雅停止模式:先从 ZooKeeper 下线(不再接受新任务),等待运行中的任务完成后再停止并重启 |
重启策略
根据 stopImmediately 和 stopGraceful 的配置,支持三种重启策略:
| 策略 | 配置 | 行为 | 适用场景 |
|---|---|---|---|
| 优雅停止 | stopGraceful = true |
先下线、等无任务后再停止重启 | 生产环境推荐 |
| 立即停止 | stopImmediately = true |
超时后直接停止重启,不等待任务 | 对中断容忍度高的场景 |
| 空闲停止 | 两者均为 false(默认) | 仅在无运行中任务时才停止重启 | 一般场景 |
注意:
stopImmediately优先级高于stopGraceful,两者同时为 true 时按立即停止处理。
配置示例
cluster.json 配置
{
"buildComputeUnits": [
{
"priority": 4,
"computeUnitName": "spark_kyuubi_build",
"computeUnitType": "BUILD",
"engineType": "KYUUBI_SPARK",
"connectionConfigs": {
"url": "jdbc:kyuubi://zk1:2181,zk2:2181,zk3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi-tardis;",
"username": "devops"
},
"sparkManagerConfig": {
"kyuubiRestUrl": "http://kyuubi-host:10099",
"yarnUrl": "http://yarn-rm-host:8088/",
"maxRuntimeHours": 24,
"stopGraceful": true,
"stopImmediately": false
}
}
]
}
关闭自动重启
如果不需要自动重启功能,不配置 sparkManagerConfig 字段即可。已配置的情况下,移除 sparkManagerConfig 或将 kyuubiRestUrl / yarnUrl 置空即可关闭。