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

Apache NiFi 开发 处理器使用说明的更多相关文章

  1. Apache Nifi 开发

    Apache NiFi是由美国过国家安全局(NSA)贡献给Apache基金会的开源项目.其设计目标是自己主动化系统间的数据流.基于其工作流式的编程理念.NiFi很易于使用,强大.可靠及高可配置. 两个 ...

  2. Apache NiFi 开发 安装说明

    系统环境: vmware安装的centos6.7虚拟机 jdk1.8版本 maven库3.3.9版本(在使用源码编译启动的时候需要修改配置文件与当前使用的maven版本匹配,最低使用版本好像是3.1. ...

  3. 初识Apache NiFi

    一. NiFi介绍 Apache NiFi支持功能强大且可扩展的数据路由,转换和系统中介逻辑的有向图. Apache NiFi的一些高级功能和目标包括: 基于Web的用户界面 设计,控制,反馈和监控之 ...

  4. 深入Apache NiFi 之源码学习

    前言 要问 Hortonworks 这家公司最有产品力的产品是什么,我觉得是 Apache NiFi.去年Cloudera 和 Hortonworks 合并之后,以 Cloudera 为主,两家公司进 ...

  5. Apache nifi 第一篇(概述)

    1.什么是Apache NiFi? 简单地说,NiFi是为了自动化系统之间的数据流.虽然数据流这种形式很容易理解,但我们在此使用它来表示系统之间的自动化和不同系统之间数据的流转.企业拥有多个系统,其中 ...

  6. 【NIFI】 Apache NiFI 之 ExecuteScript处理(二)

    本例介绍NiFI ExecuteScript处理器的使用,使用的脚本引擎ECMScript 接上一篇[NIFI] Apache NiFI 之 ExecuteScript处理(一) ExecuteScr ...

  7. 【NIFI】 Apache NiFI 之 ExecuteScript处理(一)

    本例介绍NiFI ExecuteScript处理器的使用,使用的脚本引擎ECMScript FlowFile I / O简介 NiFi中的流文件由两个主要组件构成,即属性和内容.属性是关于内容/流文件 ...

  8. Apache NiFi Processor实战

    1 前言 Apache NiFi是什么?NiFi官网给出如下解释:“一个易用.强大.可靠的数据处理与分发系统”.通俗的来说,即Apache NiFi 是一个易于使用.功能强大而且可靠的数据处理和分发系 ...

  9. Apache 下SVN项目管理使用说明

    Apache 下SVN项目管理使用说明 (1)Apaceh和SVN先要装好. (2)在apache的目录下找到httpd.conf文件,在最后一行增加如下配置 Include conf/svn.pro ...

随机推荐

  1. 最好PHP开发工具Zend Studio 9.0.2的安装和使用

    摘要:Zend Studio是Zend Technologies开发的PHP语言集成开发环境(IDE),是公认最好的PHP开发工具.在5.5系列后,官方推出的Zend Studio都利用了Eclips ...

  2. 2016.11.29 activiti实战--第19章--统一身份管理(含自定义用户与数组的实现)

    学习资料:<Activiti实战> 第十九章 统一身份管理 本章讲解如何统一业务系统与activiti的用户管理系统. 第5章的时候已经讲解过activiti的用户与组.一般来说业务系统都 ...

  3. 2016.11.10 Could not get JDBC Connection; nested exception is java.sql.SQLException: No suitable driver

    运行项目rds_web时,出现错误提示:Could not get JDBC Connection; nested exception is java.sql.SQLException: No sui ...

  4. 对Date的扩展,将 Date 转化为指定格式的String

    <script language="javascript" type="text/javascript"><!-- /** * 对Date的扩 ...

  5. 利用动态图添加Loading动画

    opacity:CSS3中的属性,调节透明度,一般取值0.5 添加思想: 1.对超链接添加点击事件,通过new {@onclick="showLoading()"} Html.Ac ...

  6. Web安全系列(三):XSS 攻击进阶(挖掘漏洞)

    前言 在前些章节 (web安全系列(一):XSS 攻击基础及原理)以及(Web安全系列(二):XSS 攻击进阶(初探 XSS Payload))中,我详细介绍了 XSS 形成的原理以及 XSS 攻击的 ...

  7. 19:ReverseNumber数字颠倒

    题目描述 描述:输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001 输入描述:输入一个int整数 输出描述:将这个整 ...

  8. 去掉activity默认动画效果的方法

    非常多手机都会自带一些Activity切换动画,项目中假设我们须要禁用掉系统Activity切换的动画.能够使用例如以下方法: 一.重写Activity的Them中的windowAnimationSt ...

  9. Kindeditor上传图片回显不出来

    原因之一: 图片成功上传但是回显不出来,这个时候,要检查返回的图片地址是否加了http://这个玩意,不然会将原来的头加上图片返回地址.

  10. 有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?

    第二种方法:首先分析题意,可用概率的方法来计算,做了好几道百度的题目,觉得大多数是再考概率论,所以首先要弄懂题意,最后做题前把公式写出来,这样编码时才能游刃有余. 本题中下面的第一种用迭代枚举的方法来 ...