1.下载Nifi源码和程序
建议使用未修改的源码和程序,自行打包比较困难,并且很多库需要通过特殊的方法才能下载
这个文章过于古老,是从我很久前的博客上找到的,部分图片压根就找不到了,将就着看吧。或者也可以到csdn上看,不知道为啥给我设置了vip才能看...不是我干的!
https://blog.csdn.net/TineAine/article/details/120328983
Nifi 源码下载:各版本Nifi源码地址
Nifi 程序下载:各版本Nifi程序地址
Git下载指定版本源码:git clone --branch [tags标签] [git地址]
下载完成后解压Nifi程序到任意目录
2.修改并编译Nifi源码
IDEA直接打开Nifi源码根目录的Pom即可,开始可能会要求下载Maven依赖,(建议通过特殊方法下载,阿里云上的依赖库不全)然后添加一个Maven运行配置
修改Nifi.java 103和161行,将其注释(阻止Nifi监听心跳)
注意,仅在调试情况下注释掉,否则会造成其他问题
// 103
// bootstrapListener.start();
// 161
// bootstrapListener.sendStartedStatus(true);
点击跳过测试,避免不必要的错误
如果你使用的版本是Nifi 1.12.1,需要打开Nifi的根Pom文件,将其中的jdk 11修改为1.8:
修改前:
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
修改后:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
通过Maven面板,重新加载所有项目
3.复制目录并修改配置
复制Nifi执行程序根目录下的 bin
、conf
、lib
到源码根目录
按快捷键Ctrl
+ Alt
+ Shift
打开项目结构
面板,找到模块
选项卡,选择其中的nifi-runtime
模块
点击加号按钮
,选择JAR或目录
右侧为其添加conf
和lib
依赖
4.增加IDEA执行配置
添加一个IDEA 运行/调试配置
,然后IDEA按下图进行配置
(第一次运行时,日志
部分的配置是没有nifi-app.log
那三个文件的,可以自行创建
或启动一次
,让Nifi自己创建)
!!! 注意,如果使用Nifi 1.12.1进行编译,整个项目必须同时使用JDK 1.8,否则必然报错,无论是Nifi Maven根Pom还是项目指定,都必须是JDK1.8 !!!
其中,vm选项设置为(不要直接复制,先修改其中的<源码根目录>
为你的源码根目录地址):
-Xmx512m -Xms512m -Djavax.security.auth.useSubjectCredsOnly=true -Djava.security.egd=file:/dev/urandom -Dsun.net.http.allowRestrictedHeaders=true -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Djava.protocol.handler.pkgs=sun.net.www.protocol -Dzookeeper.admin.enableServer=false -Dnifi.properties.file.path=<源码根目录>\conf\nifi.properties -Dnifi.bootstrap.listen.port=61884 -Dapp=NiFi -Dorg.apache.nifi.bootstrap.config.log.dir=<源码根目录>\logs
5.调试Nifi
直接启动或通过调试模式启动即可,在IDEA里可以直接打断点进行调试
如果没有配置日志,第一次运行控制台是没有任何日志的,等待大概一到五分钟,通过浏览器即可打开Nifi界面
参与讨论
(Participate in the discussion)
参与讨论