当前位置: 首页 > 知识库问答 >
问题:

为库存nifi处理器创建自定义DistributedMapCacheClient控制器服务

穆阳炎
2023-03-14

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

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

等待处理器的nifi画布错误

PutDistributedMapCache处理器的nifi画布错误

    null
    null
  • nifi-standard-services-api-nar(nar)
  • my-nifi-services
  • my-nifi-services-api
  • nifi-standard-services-api-nar(nar)

共有1个答案

龙欣德
2023-03-14

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

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

  1. 您需要实现AtomicDistributedMapCacheClient,而不是DistributedMapCacheClient.
  2. 您需要将项目依赖项与正在运行的NiFi版本同步(如1.12.1到1.12.1;必须与这些服务保持一致)
 类似资料:
  • 我明白,对于处理器,我只需在文件夹下的中编写代码,然后从中创建一个nar文件。但是在控制器服务的情况下,我有4个文件夹生成。我可以看到两个java文件。 > 显示在文件夹下 显示在文件夹下 现在,为什么在自定义控制器服务的情况下生成两个java文件,而在自定义处理器的情况下只生成一个java文件。另外,由于我试图模仿服务,其中的java文件中有两个我应该复制服务的原始源代码。 请从头开始指导我创建

  • 我编写了一个自定义的NiFi处理器,用于在BigQuery上执行一些任务。我希望能够重用与NiFi捆绑在一起的GCP凭据提供者控制器服务,以用于身份验证。这可能吗?我尝试将nifi-gcp-processors maven依赖项添加到我的项目中,它成功构建,但当我尝试用我的nar启动NiFi时,它失败了,出现了这个错误消息。

  • 我看到了Apache NiFi的这个示例(https://medium.com/hashmapinc/creating-custom-processors-and-controllers-in-apache-nifi-e14148740ea),但仍然无法理解如何为自定义处理器和控制器服务实现打包结构。 我的目标是创建一个自定义控制器服务来使用我的多个自定义处理器。我的maven结构应该是什么样子?

  • 我正在构建一个自定义处理器来处理流文件,为了处理流文件,我需要从我的本地文件系统读取CSV文件。我创建了一个proerty描述符CSV_PATH,如下所示 现在我想在配置处理器时获取在UI中设置的CSV_PATH属性的值。我无法获得CSV_PATH值。另外,如果我在代码中硬编码filepath,那么我仍然无法从本地文件系统读取CSV。

  • 我试图加载一个自定义的NiFi处理器,但无法让NiFi加载所有的.nar依赖项,尽管尝试了各种pom.xml配置。我在SO上遇到过一些类似的问题,但还没有找到这个问题的答案。

  • 我使用的是Nifi 0.4.1版本。我写自定义代码转换CSV到avro格式。我已经创建了类文件,并能够生成nar文件。将nar文件放置在lib目录中,并重新启动nifi服务器。 任何帮助都很感激.. 谢谢,