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

在Nifi中,带有配置单元数据库连接池服务的自定义处理器不工作

韦修文
2023-03-14

我正在开发自定义处理器与配置单元数据库连接池服务。在pom文件中添加必要的依赖项,并在自定义处理器文件夹中添加必要的文件夹。我已经创建了类文件,并能够生成nar文件。将nar文件放置在lib目录中,并重新启动nifi服务器。看起来一切都很好。但是数据库连接下拉框中没有显示服务。相反,它显示连接id,但每次服务创建时,单击controller部分的“Create”。对于其他处理器来说,它似乎工作得很好。

任何帮助都很感激。

谢谢

共有1个答案

翟曦
2023-03-14

通常,要将处理器链接到控制器服务,需要两个依赖关系:

  • 处理器项目需要对服务接口所在的JAR提供依赖项
  • NAR项目需要服务接口所在的NAR上的NAR依赖项

对于Hive,接口和实现都在nifi-hive-processors中,这些处理器被打包到nifi-hive-nar,因此您需要:

     <dependency>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi-hive-processors</artifactId>
        <version>replace with the version of NiFi you are using</version>
        <scope>provided</scope>
    </dependency>

在您的NAR pom.xml中:

   <dependency>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi-hive-nar</artifactId>
        <version>replace with the version of NiFi you are using</version>
        <type>nar</type>
    </dependency>
 类似资料:
  • 我试图加载一个自定义的NiFi处理器,但无法让NiFi加载所有的.nar依赖项,尽管尝试了各种pom.xml配置。我在SO上遇到过一些类似的问题,但还没有找到这个问题的答案。

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

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

  • 由于基于HTTP协议的Web程序是无状态的,因此,在应用程序中使用JDBC时,每次处理客户端请求时都会重新建立数据库连接。如果客户端的请求非常频繁,服务端在处理数据库时将会消耗非常多的资源。因此,在Tomcat中提供了数据库连接池技术。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个数据库连接。在使用完一个数据库连接后,将其归还数据库连接池

  • 我使用PythonGevent的流服务器与另一台机器(远程)进行通信,该机器发送并发TCP/IP请求(平均每秒钟60个请求)。这种通信的本质主要是IO绑定的(短文本,然后是音频流)。我打算使用Postgresql存储每次通信的结果(例如:从远程服务器接收的文件名)。 我认为为Streamserver中生成的每个greenlet调用一个新的db连接是个坏主意(池大小为90所以90 req/sec m