2021-03-16 13:03:32

开发创建自定义 NiFi Processor 的教程


开发创建自定义 NiFi Processor 的教程

本教程将带你创建一个自定义的 Apache NiFi Processor 项目,创建自己的处理器处理 FlowFile,本文的源代码在此处公开:https://github.com/renfei/demo/tree/master/nifi/nifi-custom-bundle

Add Archetype(添加原型)

新建项目,选择 Maven 项目,勾选 Create from archetype(从原型创建),然后 点击 Add Archetype(添加原型)添加:

  • GroupId:org.apache.nifi
  • ArtifactId:nifi-processor-bundle-archetype
  • Version:你的NiFi版本
添加 NiFi Archetype

创建项目

然后选择 nifi-processor-bundle-archetype,填写项目名称、包名和版本,在 Properties 这里需要添加一个 Maven Propert:

  • Name:artifactBaseName
  • Value:你的组件名称,我这里叫 custom
创建nifi项目nifi Maven Propert创建nifi项目

等待构建完成,你就会得到如下的项目结构:

项目结构

nifi-custom-nar 是 NiFi 的 nar 包项目,这个不用我们管,他依赖了 nifi-custom-processors 模块,这个可以从 pom 文件里看到。

src/main/java/net/renfei/nifi/processors/custom/MyProcessor.java 就是我们的 Processor 了,我们的代码在这里写。

src/main/resources/META-INF/services/org.apache.nifi.processor.Processor 相当于一个注册列表,我们需要把我们的处理器都写在里面,否则会报错。

src/test/java/net/renfei/nifi/processors/custom/MyProcessorTest.java 是单元测试代码,可以不依赖 NiFi 直接运行测试我们的 Processor。

nifi项目结构

关于开发

在 NiFi 中是高并发环境,需要多线程的编程经验,否则一旦处理不好可能会出现问题甚至将内存占满,由于目前我不确定我能 100% 正确的处理数据,所以在这里先不贴开发的相关代码了。

我也在不断学习充电,我需要先再看一遍并发编程和JVM的堆栈结构和内存模型,再开始coding。


商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://www.renfei.net/posts/1003465
评论与留言
以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。

本站有缓存策略,时间约2小时后能看到您的评论。本站使用自动审核机制,如果您的内容包含广告/谩骂/恐怖/暴力/涉政等不和谐内容将无法展示!


本站有缓存策略,时间约2小时后能看到您的评论。本站使用自动审核机制,如果您的内容包含广告/谩骂/恐怖/暴力/涉政等不和谐内容将无法展示!