服务端扩展

使用自定义配置顾问注入会话配置

师成师成· 更新于 2026-09-29· 阅读 2 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

1.5.0 版本新增。

会话配置顾问

Kyuubi 支持通过自定义配置顾问注入会话配置。该功能通常用于动态追加或覆盖会话配置,从而使 Kyuubi 管理员能够对用户指定的配置进行管控。

注入会话配置的步骤

  1. 创建一个实现了 org.apache.kyuubi.plugin.SessionConfAdvisor 的自定义类。

  2. 编译并将该 jar 放入 $KYUUBI_HOME/jars

  3. 在 kyuubi-defaults.conf 处添加配置:

    kyuubi.session.conf.advisor=${classname}

org.apache.kyuubi.plugin.SessionConfAdvisor 具有一个无参构造函数,其中包含一个接收用户配置和会话配置的方法,该方法会返回一个新的配置映射。

public interface SessionConfAdvisor {
  default Map<String, String> getConfOverlay(String user, Map<String, String> sessionConf) {
    return Collections.EMPTY_MAP;
  }
}

注意

返回的配置映射将覆盖原始的会话配置。

示例

我们有一个自定义类 CustomSessionConfAdvisor:

public class CustomSessionConfAdvisor implements SessionConfAdvisor {
  @Override
  Map<String, String> getConfOverlay(String user, Map<String, String> sessionConf) {
    if ("uly".equals(user)) {
      return Collections.singletonMap("spark.driver.memory", "1G");
    } else {
      return Collections.EMPTY_MAP;
    }
  }
}

如果用户 uly 通过以下方式创建连接:

jdbc:hive2://localhost:10009/;hive.server2.proxy.user=uly;#spark.driver.memory=2G

最终的 Spark 应用程序将为 driver JVM 分配 1G 而不是 2G。

评论

登录后参与评论

正在加载评论…