nifi自定义组件项目搭建教程
一、测试准备工作
1、jdk环境准备:
本次jdk基于1.8,对于jdk,不建议使用更低的版本,因为再1.4.0的源码中,已经开始支持拉姆达表达式,这个也是从jdk1.8才开始支持
2、中央库的Archetype
nifi对于开发自己的processor有自己的一套框架,使用项目模板,可以引用中央库的Archetype,配置简单方便。
二、注意事项
注:将注意事项放到第二项,是不想读者再折腾一圈后才发现解决方案
1、最原始自定义组件一般只需要创建一次,因为随着组件的更新,组件需要向下兼容,基于原来的组件继续开发比较合理。如果有特殊情况,那就特殊对待。
2、如果存在模板添加失败,重新安装idea或者降低idea版本(此次教程测试idea2021.2.3失败,使用idea2018.1.1)
3、如果pom中有报错信息,直接reimport一下即可
4、目前测试知道的几个版本对应
1.12.1→mvn 3.5以上→jdk11以上
1.9.1→mvn3.5以上都可用→jdk1.8以上都可用
三、nifi模板版本地址
相关版本地址(个别地址404,自行选择):
Maven Repository:org.apache.nifi>nifi-processor-bundle-archetype | 菜鸟教程 | 盘古歌技术
四、项目搭建
1、新建模板
new project
GroupId:org.apache.nifi
ArtifactId:nifi-processor-bundle-archetype
Version:你的NiFi版本(这里选择1.12.1)
2、创建项目
然后选择 nifi-processor-bundle-archetype,填写项目名称、包名和版本,在 Properties 这里需要添加一个 Maven Propert:
Name:artifactBaseName
Value:你的组件名称,我这里叫 custom
等待构建完成,你就会得到如下的项目结构:
3、项目结构
1、nifi-custom-nar 是 NiFi 的 nar 包项目,这个不用我们管,他依赖了 nifi-custom-processors 模块,这个可以从 pom 文件里看到。
2、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。
后续开发以及打包nar包,请见nifi自定义组件开发文档(ps:正在编写中)