项目背景:鉴于项目需求,需要删除指定的nifi自带的processor
项目构建解析:nifi所有的processor都在nar-bundles目录下,大致可分为三种类型,第一种是基础框架类型,这种一般不能够删除,删除会导致系统启动异常;第二种是后期扩展类型,这种一般类似于集成了spark,ambari之类的,单独一个目录存放;第三种是标准类型,这种应该算是最初nifi的processor,都是一些常用的,他们被放在了一个standard目录下,在binary版本的nifi下是以一个nar存在的。
解决方案:
(我这边思考的共有俩种方案,读者可选择性参考)
(1)从binary版本的nifi下手,我们扩展自己的processor都是通过往lib目录下丢自己写的processor的包来完成扩展的,同样如果要做nifi的删减,那么也是直接删除对应的nar包即可,但对于standard呢?里面可能有的是需要的有的不需要,怎么办?那么就得通过先修改source版本的standard的注册文件,将不需要的全部注释掉,然后重新编译。最后将build通过的nar包替换binary版本中的nar包,这样就可以了。
(2)从source版本的nifi下手,直接根据自己的需要修改所有processor的注册文件,然后重新编译。最后直接通过source版本的target的bin下的批处理程序启动nifi也可以啦。
(可能有同学会好奇感觉第一种有点多此一举,直接用第二种就可以了啊,我这里是因为最初源码开发是单独建立的mvn项目,并没有在源码的目录下构建,最后直接丢到binary版本去跑的,所以会有这种情况。如果你开始只用source起步的话,那么忽略掉我第一条,哈啊哈)