赞
踩
在没有详细的介绍之前,可以先通过一个小的Demo,让自己有一个初步的了解,或许这样对你来说会比较有意思。
添加
添加Processor的流程就是这样,这里使用动图演示一下,后续这样操作即可。
配置
在input Directory一栏中添加路径,需要注意的是这个路径是安装nifi的服务器上的路径。其他配置暂时不做太多介绍,后续可以自行了解。这里主要是入门操作,看的多了反而觉得杂乱。
添加
配置
在Directory一栏填写路径,即文件传输的目的地。
putfile作为流程中的最后一个组件,已经没有下游。所以当他success或者failure的时候自己消化就可以。当然也可以根据自己需要当成功的时候自己消化,当失败的时候记录日志。
启动组件方式已经介绍过,通过选中组件后,点击操作栏的启动按钮,或者单机鼠标右键都可以实现启动效果。
# 模拟往source目录下生成文件
[root@zxy_slave1 target]# echo "hello world" > /zxy/data/NifiData/source/test1.txt
# 查看target目录,已经由Nifi同步到
[root@zxy_slave1 target]# ls
test1.txt
# 查看文件内容
[root@zxy_slave1 target]# cat test1.txt
hello world
Nifi提供了293个处理器,但是可以通过nifi/lib
目录下添加nar包增加新的处理器。
选项说明:
第一个是处理器名称,可根据业务自定义
第二个是否启用,与2.3 处理器选项配置说明
中的distable功能一样。
第三个是终止关系,处理器定义的每个关系必须有下游处理器或者自动终止。
第四个是可能发生的事件,在稍等多久处理。
第五个是某种情况下,阻止处理器运行事件。
第六个是日志级别,默认为WARN,显示所有警告和错误。
第一个调度策略,有时间驱动和cron定时驱动。
第二个是大哥前任务数,根据需求配置。
第三个是运行计划,根据不同调度策略选择对应的值。
第四个执行器,在集群模式下,可以选择是所有节点都执行还是主节点执行。
不同处理器的属性都不一样,可以通过view usage
查看对应文档。
在空白处添加注释即可
在配置好所有属性后,一定要APPLY
保存修改。
不同业务场景,使用的处理器都会大有差别,这里简单罗列几个。
ExecuteScript : 执行脚本的处理器,可以支持如下脚本: clojure, ecmascript, groovy, lua, python, ruby
QueryDatabaseTable : 数据库查询处理器
ConvertAvroToJSON : 将数据格式由Avro转为Json
SplitJson : 将JSON文件拆分为多个单独的FlowFiles, 用于由JsonPath表达式指定的数组元素。
EvaluateJsonPath : 根据FlowFile的内容评估一个或多个JsonPath表达式。这些表达式的结果将分配给FlowFile属性,或者写入FlowFile本身的内容,具体取决于处理器的配置。
ReplaceText : 文本组装与替换, 支持正则表达式
PutHDFS : 将FlowFile数据写入Hadoop分布式文件系统(HDFS)
PutHiveQL : 执行hive ddl/dml命令, 如: insert, update
PublishKafka_2_0 : 根据配置将消息发送到kafka topic
SelectHiveQL : 执行hive select 语句并获取结果
PutSQL : 执行SQL的insert或update命令
GetFile : 从目录中的文件创建FlowFiles。
PutFile : 将FlowFile数据写入文件
GetHDFS : 从Hadoop分布式文件系统获取文件
CaptureChangeMySQL : 从MySQL数据库中检索更改数据捕获(CDC)事件。CDC事件包括INSERT,UPDATE,DELETE操作。事件作为单个流文件输出,这些文件按操作发生的时间排序。
ExecuteStreamCommand : 一般用于执行sh脚本
为了更好的处理数据,用户必须对数据处理类型有了解。因为Nifi有很多处理器实现提取数据、路由、转换、处理、拆分、聚合以及分发等功能。只有了解后,才能快速的找到适合你需求的处理器,以达到最优的效果。
可用于接收API接口数据
。此处理器比GetHTTP和PostHTTP更通用,但需要更多配置。此处理器不能用作源处理器,并且需要具有传入的FlowFiles才能被触发以执行其任务。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。