Apache NiFi 开发 处理器使用说明

本文介绍了NIFI中常用组件的配置与使用方法,包括GetFile、PutFile、SplitJson等处理器的操作流程,以及如何利用自定义组件扩展NIFI的功能。同时提供了处理XML和JSON数据的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NIFI的使用:

注意:FlowFile由【属性】和【内容】组成,在解析的过程中这个概念非常重要,因为有些组件操作的是属性,有些组件操作的是内容,在配置组件时Destination配置项的选择很重要,flowfile-content将解析结果放在数据流的内容中替换了原有的内容,flowfile-attribute将解析结果添加到flowfile的属性中,原本的内容不变。根据后续操作的需要,选择处理结果存放的位置。

 

 

(一)拖拽组件--选择类型--选择配置

 

处理器:

①Getfile:配置提取文件路径

 

②Putfile:配置接收文件路径,勾选failure、success

 

③SplitJson:拆分json,勾选failure、original

 

JsonPath Expression:选择json中需要拆分的字段名称,该字段名称中的value为json格式的多条数据,组件会将value中的多条数据拆分成数量相等的数据流,并舍弃拆分字段名称value值之外的所有数据。

 

Before:{"name": "lkd", "age": [{"max": "99"},{"min": "3"}],"testdata": "lkd"}

Last:{“max”:”99”}

 {“min”:”3”}

age中的两条数据拆分出来了

 

④PutElasticsearch5:将数据存储到ES中,勾选全部三个选项

 

ElasticSearch Hosts:配置主机:端口,localhost:9300

Identifier Attribute:标识符属性,选择了系统自动生成的uuid,或许可以使用我们生成的id作为标识,但是暂时没有理清数据的正确格式。能做到简单的通过uuid标识数据成功入库。

 

Index:索引名称

Type:类型名称

其他的必填参数系统已经自动生成,无需我们填写但是可以修改。

 

⑤SplitText:将文件按照行分割,Line Split Count参数设置分割步长

 

⑥AttributeToJson:将流数据的属性转换为json

 

配置attributes list:添加属性名称,可以将属性名称和属性值拼接为json键值对。

 

⑦EvaluateXPath组件解析xml文件。

 

配置选项中Destination选择flow-attribute操作流的节点。

Return Type选择string返回结果为字符串。

添加属性(corpcode),添加属性获取规则(/result/scheme/tool_info/attribute::corpcode)获取xml文件中节点下的属性。

或者(/result/scheme/tool_info)获取xml文件中节点中的内容。

 

EvaluateXPath组件应用XPath对xml进行操作,关于XPath的具体使用方法参考:http://www.w3school.com.cn/xpath/index.asp

 

⑧EvaluateXQuery:获取xml中多个节点,并将他们拆分成多个流,基于XQuery表达式语言。

XQuery参考:http://w3school.com.cn/xquery/xquery_example.asp

 

⑨EvaluateJsonPath:使用jsonpath表达式语言获取json文件的节点和内容。

Jsonpath与XPath的语法结构近似,我没有找到jsonpath的标准参考,在后面列出了一个博客得来的参考内容。

地址:http://www.cnblogs.com/kill0001000/p/4884803.html

 

⑩添加自定义组件(添加成功但是没有验证自己编写处理逻辑之后对流数据的处理)

1、source-nifi/nifi-nar-bundles文件夹中添加自定义组件文件夹

例如:nifi-custom-bundle

2、在nifi-custom-bundle中运行mvn archetype:generate命令。

3、找到

source-nifi/nifi-nar-bundles/nifi-custom-bundle/test-processors/nifi-test-processors/src/main/java/test/processors/test/MyProcessor.java文件,修改其中的内容

4、回到test-processors文件夹下运行mvn install编译程序

5、source-nifi/nifi-nar-bundles/nifi-custom-bundle/test-processors/nifi-test-nar/target/nifi-test-nar-1.0.0.nar文件放到二进制lib文件夹下。

6、重新启动二进制文件,在处理器选择的时候显示了自己添加的组件。

 

输入端口:创建输入端口,供其他平台调用

输出端口:创建输出端口,将数据流传输到其他平台

标签:添加标签,在标签中写入文本描述

模板:

①保存、上传模板:操作面板中包含启动、停止和保存模板、上传模板。

上传的模板可以在菜单列表中的模板中查看删除和下载。

并且可以在组件中的模板功能组件中放入工作区中。

(二)模块配置:勾选因处理结果不同而流向不同组件的通路。

(三)模块启动:选中组件,可以右键启动或在操作窗口中点击启动。

已经启动的组件使用相同的方式停止。

(四)删除组件:删除的组件必须从组件流的开始端删除,处于中间的组件不能直接删除,或则可以去除组件的两条连接再删除。

 

 可以发邮件给我:1492370189@qq.com

转载于:https://www.cnblogs.com/rethink-east/p/6396860.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值