服务端扩展

配置 Kyuubi 使用自定义事件处理器

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

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

Kyuubi 提供了事件处理机制,可用于记录一些事件。除了内置的 JsonLoggingEventHandler 之外,Kyuubi 还支持自定义事件处理器。它通常用于将 Kyuubi 事件写入某些外部系统,例如 Kafka、ElasticSearch 等。org.apache.kyuubi.events.handler.CustomEventHandlerProvider 具有一个无参构造函数,可用于创建自定义的 EventHandler。

package org.apache.kyuubi.events.handler

import org.apache.kyuubi.config.KyuubiConf
import org.apache.kyuubi.events.KyuubiEvent

/**
 * Custom EventHandler provider. We can implement it to provide a custom EventHandler.
 * The implementation will be loaded by ``Service Provider Interface``.
 */
trait CustomEventHandlerProvider {

  /**
   * The create method is called to create a custom event handler
   * when this implementation is loaded.
   *
   * @param kyuubiConf The conf can be used to read some configs.
   * @return A custom handler to handle KyuubiEvent.
   */
   def create(kyuubiConf: KyuubiConf): EventHandler[KyuubiEvent]
}

构建自定义 EventHandler

要创建派生自上述接口的自定义 EventHandlerProvider 类,我们需要:

  • 引用相应的库
<dependency>
   <groupId>org.apache.kyuubi</groupId>
   <artifactId>kyuubi-events_2.12</artifactId>
   <version>1.9.1</version>
   <scope>provided</scope>
</dependency>
  • 实现 org.apache.kyuubi.events.handler.CustomEventHandlerProvider

  • 在项目的 src/main/resources/META-INF/services 目录下添加一个名为 org.apache.kyuubi.events.handler.CustomEventHandlerProvider 的文件,其内容为自定义类的名称。

启用自定义 EventHandler

要启用自定义的 EventHandler,我们需要:

  • 将 jar 包放入 $KYUUBI_HOME/jars 目录,使其对 Kyuubi 服务器的类路径可见。

  • 在安装了 Kyuubi 服务器的每个节点上,将以下配置项添加到 $KYUUBI_HOME/conf/kyuubi-defaults.conf 中。如果需要使用其他事件处理器,可以在 CUSTOM 之后追加。

kyuubi.backend.server.event.loggers=CUSTOM
  • 重启所有 Kyuubi 服务实例。

评论

登录后参与评论

正在加载评论…