Presto 插件:单个 JAR 与多个 JAR

Presto Plugins: Single JAR vs Multiple JARs


现在我有两个选择

1.将它们捆绑在一个 JAR

我们可以通过外部配置文件控制注册 UDF秒/EventListener秒(不同的配置对于主节点和从节点)。随着更多 UDFEventListener 和其他 SPI 的添加,单个 JAR 与经过调整的配置文件配对可实现预期结果。

2。将它们捆绑为单独的 JAR

我们可以为 UDFs / EventListener 创建不同的 Plugin 类 并在 [=] 中提供相应的 classpaths 28=] 文件到 Jenkins。然后,我们将针对不同的 组件 使用不同的 JAR:一个 JAR 用于所有 UDF,一个 JAR 用于所有 EventListener s 等。但是,随着将来添加更多功能,我们最终可能会拥有许多不同的 JARs。


我的问题是


我目前使用 Presto 0.194,但很快就会升级到 Presto 0.206

两种方法都行。你可以做对你来说最简单的事情。中间实际上还有第三个选项,即在单个 JAR 中有多个 Plugin 实现(您将在 META-INF/services 文件中列出所有实现)。

EventListener实际上是用在coordinator和worker上。查询事件发生在协调器上,拆分事件发生在工作者上。但是,如果你只关心查询事件,你只需要在协调器上。

您可以在协调器和工作器上部署事件插件,但只能在协调器上配置。仅当您通过添加一个 event-listener.properties 文件来配置它时,才会使用该代码,其中 event-listener.name 属性 与您在 EventListenerFactory.getName() 方法中 return 的名称相匹配。