nifi:使用eclipse开发自己的nifi processor
1、安装JDK8,maven,eclipse配置maven管理工具。
2、eclipse新建maven项目,如下图所示
3、点击next,进入如下图所示页面
4、默认选项,继续点击next进入如下页面
5.点击上图中箭头所指的按钮 Add Archetype进入如下所示页面
6、填写:
Archetype Group Id:org.apache.nifi
Archetype Artifact Id:nifi-processor-bundle-archetype
Archetype Version:1.2.0
点击OK,可以看到nifi的archetype已经添加到meven中了。
7.选择org.apache.nifi,点击next,如下图所示
8、填写项目信息后点击finish完成项目创建
9、创建完成以后项目下新生成3个目录,我们要开发的东西在nifi-nifitest-processors中完成。
10、打开nifi-nifitest-processors目录如下:
11、在包下新加类起名XWDCGetATags使之继承AbstractProcessor,注解tags中添加一些关键词,后面的实用过程中可以通过关键词查询processor
12、新建几个PropertyDescriptor(接受页面配置的参数,如果不需要参数,可以不进行配置)
13、新建几个Relationship(输出状态,成功或者失败或者其他)
14.定义两个集合添加上面创建的PropertyDescriptor和Relationship
15、添加初始化方法将步骤12,和13创建的属性添加到集合中
16、添加步骤14中创建的属性的get方法
17、onTrigger方法中实现自己的业务
自定义属性的值的获取方法:String = isagent = context.getProperty(IS_AGENT).getValue();
获取flowFile中的内容的方法:
byte[] buffer = new byte[(int) flowFile.getSize()];
session.read(flowFile, new InputStreamCallback() {
@Override
public void process(final InputStream in) throws IOException {
StreamUtils.fillBuffer(in, buffer);
}
});
String content = new String(buffer, StandardCharsets.UTF_8);
18、将自己处理后的结果返回给flowFile 我这里返回的是一个json
19、找到文件org.apache.nifi.processor.Processor
20、在里面添加:包名+类名,将processor暴露出来
21、maven运行nifitest,会在项目nifi-nifitest-nar下生成一个nar的包,将包放在nifi目录下的lib目录中,重启nifi服务器即可看到自己添加的processor了。
源码地址:http://download.****.net/download/scujinxiang/10208384
参考: