Nifi自定义Processor开发准备工作

时间:2024-05-22 22:34:10

简单整理一下有关Nifi自定义Processor的准备工作。
首先开发工具,JDK什么的就不多说了。
这里以Eclipse为例,JDK版本为1.8.0_161
其他开发工具大体步骤类似,JDK的话,不建议使用更低的版本,因为之前有看过的1.4.0的源码,其中就已经使用到了λ表达式,这个东西是JAVA8,也就是1.8.XXX才开始支持的
由于Nifi对于开发Processor有自己的一套框架,所以在开发自定义Processor上大致有两条路可以走

  1. 在原有的基础上进行扩充,这样的方法优点很明显:
    容易搭建环境;在现有的基础上进行修改,不容易出现依赖问题。
    缺点也同样明显,首先就是没办法*的修改项目名称等,因为有已经存在的组件,贸然修改可能会造成更大的问题;依赖冲突,因为之前组件已经拥有大量的依赖,开发新功能导入依赖的时候,很容易就产生冲突,并且不是特别容易解决
  2. 新建Model来进行自己的开发,这种方式的优点是可以将功能不同组件尽可能的分离开来互不影响,而缺点则是环境搭建较为麻烦。

第一种方式,我感觉有点傻,而且会给后续的维护造成很多麻烦,特别是Nifi现在还在飞速发展阶段,在不断地更新,在原有基础上修改的方式,维护成本过高。
这里主要说一下第二种方式,就是自己创建Model,这个也有很多方式吧,但是最简单的还是通过Nifi的nifi-processor-bundle-archetype。建议直接使用*库的Archetype
配置也很简单,Eclipse的话首先在preferences中配置Archetype库信息
Nifi自定义Processor开发准备工作
然后直接把上边的目录文件地址贴上去确定就可以了,不放心的可以先Verify一下,不过这个用时比较长,在记录环境搭建的时候里面已经有3.5W+的Archetype
配置好以后,在创建Maven model或者project的时候能直接看到要用的nifi-processor-bundle-archetype,选择对应你Nifi环境的版本就可以。这里在获取列表的时候可能有些慢,原因同上,想要更快的话,可以选择把Nifi响应版本的nifi-processor-bundle-archetype下载到本地库,并配置好响应的目录文件。

Nifi自定义Processor开发准备工作
再往后的操作应该不用多赘述了,需要注意的一点就是,如果想要和Nifi源码的目录结构相似,实际创建的时候有些参数自己要稍微调整一下,否则不影响使用,但是个人感觉稍微有点奇怪。
通过Archetype创建是最简单的创建方法,另外的话,还有通过已有的项目,复制,然后删掉无用的类这种骚操作,以及自己手动创建完整的Model以及配置依赖关系这种神操作,但是我都没有用过o( ̄▽ ̄)d