【问题标题】:Creating a custom DistributedMapCacheClient controller service for stock nifi processor为库存 nifi 处理器创建自定义 DistributedMapCacheClient 控制器服务
【发布时间】:2020-05-10 11:27:54
【问题描述】:

我似乎无法为库存 nifi 处理器(例如 Wait 和 PutDistributedMapCache)创建自定义 DistributedMapCacheClientService(名为 TestDistributedMapCacheClientService)以供使用。我能够让 Wait 和 PutDistributedMapCache 看到我的自定义服务,但处理器无法启动,因为 nifi 说我的 nar“与 AtomicDistributedMapCacheClient 不兼容”。

public class TestDistributedMapCacheClientService extends AbstractControllerService implements AtomicDistributedMapCacheClient<byte[]> {
  :
}

nifi canvas error for Wait processor

nifi canvas error for PutDistributedMapCache processor

TestDistributedMapCacheClientService is selectable from properties dropdown

TestDistributedMapCacheClientService is selectable from properties dropdown

如果我只选择我自定义的任何一个 nifi 的 DistributedMapCacheClientServices(如 CouchbaseMapCacheClient 或 RedisDistributedMapCacheClient),我没有任何问题。感谢您的帮助。

这是我的项目设置及其依赖项:

  • 我的 nifi 服务包
    • 我的 nifi 服务
      • my-nifi-services-api
      • nifi-api(提供)
      • nifi-standard-services (pom)
      • nifi-distributed-cache-client-service-api(提供)
    • my-nifi-services-api
      • nifi-api(提供)
      • nifi-distributed-cache-client-service-api(提供)
    • my-nifi-services-nar
      • nifi-standard-services-api-nar (nar)
      • 我的 nifi 服务
    • my-nifi-services-api-nar
      • my-nifi-services-api
      • nifi-standard-services-api-nar (nar)

【问题讨论】:

  • 你定义了META-INF/services/org.apache.nifi.controller.ControllerService 吗?您能显示 NAR 中包含的所有 nifi 库的列表吗?
  • @daggett 是的,我做到了。否则我的测试控制器服务甚至无法在画布上进行选择。
  • 还有 nar 中的 nifi 库?
  • @dagget。是的。这一切都在那里。看来我不是唯一一个有这个问题的人,虽然这个线程很老。 community.cloudera.com/t5/Support-Questions/…
  • 你不应该在 NAR 中有任何内部 nifi 库。

标签: java service controller apache-nifi


【解决方案1】:

但处理器无法启动,因为 nifi 说我的 nar“与 AtomicDistributedMapCacheClient 不兼容”。

有两个潜在原因(两者都可能适用):

  1. 您需要实现AtomicDistributedMapCacheClient,而不是DistributedMapCacheClient
  2. 您需要将项目依赖项与您正在运行的 NiFi 版本同步(例如 1.12.1 到 1.12.1;必须精确与这些服务)

至少,#1 适用,因为AtomicDistributedMapCacheClientDistributedMapCacheClient 的子接口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多