设为首页 收藏本站
查看: 1990|回复: 0

[经验分享] Apache NiFi 开发 处理器使用说明

[复制链接]

尚未签到

发表于 2017-12-24 14:37:16 | 显示全部楼层 |阅读模式
NIFI的使用:
  注意:FlowFile由【属性】和【内容】组成,在解析的过程中这个概念非常重要,因为有些组件操作的是属性,有些组件操作的是内容,在配置组件时Destination配置项的选择很重要,flowfile-content将解析结果放在数据流的内容中替换了原有的内容,flowfile-attribute将解析结果添加到flowfile的属性中,原本的内容不变。根据后续操作的需要,选择处理结果存放的位置。
  (一)拖拽组件--选择类型--选择配置
DSC0000.png

  处理器:
  ①Getfile:配置提取文件路径
DSC0001.png

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

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

  JsonPath Expression:选择json中需要拆分的字段名称,该字段名称中的value为json格式的多条数据,组件会将value中的多条数据拆分成数量相等的数据流,并舍弃拆分字段名称value值之外的所有数据。
  Before:{"name": "lkd", "age": [{"max": "99"},{"min": "3"}],"testdata": "lkd"}
  Last:{“max”:”99”}
  {“min”:”3”}
  将age中的两条数据拆分出来了
DSC0004.png

  ④PutElasticsearch5:将数据存储到ES中,勾选全部三个选项
  ElasticSearch Hosts:配置主机:端口,localhost:9300
  Identifier Attribute:标识符属性,选择了系统自动生成的uuid,或许可以使用我们生成的id作为标识,但是暂时没有理清数据的正确格式。能做到简单的通过uuid标识数据成功入库。
DSC0005.png

  Index:索引名称
  Type:类型名称
  其他的必填参数系统已经自动生成,无需我们填写但是可以修改。
DSC0006.png

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

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

  配置attributes list:添加属性名称,可以将属性名称和属性值拼接为json键值对。
  ⑦EvaluateXPath组件解析xml文件。
DSC0009.png

  配置选项中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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-427527-1-1.html 上篇帖子: GPL 和BSD和Apache 下篇帖子: centos6.5 apache+tomcat结合 负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表