1、今天我们一起来学习处理器GenerateFlowFile。这个处理器创建带有随机数据或自定义内容的 FlowFiles。GenerateFlowFile 对于负载测试、配置和模拟非常有用。从工具栏拖动处理器到画布,然后选择GenerateFlowFile即可。
2、点击add按钮或者双击 GenerateFlowFile可将此处理器添加到画布。
3、此时GenerateFlowFile 有个感叹号的图标,标记处理器存在无效的配置。上图的提示意思是当此处理器处理成功之后没有设置流向组件(其他处理器)同时页面设置自动终止。
双击处理器,然后弹出处理器配置页面,选择relationships选项卡,勾选terminate或者同时勾选terminate和retry选项即可消除感叹号。若同时选择terminate和retry两个选项,处理器会先执行重试逻辑(若有)然后终止。
4、打开处理器配置页面,第一个选项卡settings为所有处理器的共有配置。
Name:自定义处理器名字
Enabled:标记处理器是否可用
Id:处理器的唯一标识符
Type:处理器类型+版本号
Bundle:处理器的类名和NAR包(它是一种 NiFi 插件或扩展的打包格式。NiFi 的功能可以通过安装和加载 NAR 包来进行扩展。)
Penalty Duration:在正常处理数据(一个FlowFile)的过程中,可能会发生一个事件,表明此时无法处理数据,但数据可能在以后的某个时候可以处理。当发生这种情况时,处理器可以选择对FlowFile进行处罚。这将阻止FlowFile在一段时间内被处理。例如,如果处理器要将数据推送到远程服务,但远程服务已经有一个与处理器指定的文件名相同的文件,则处理器可能会对FlowFile进行处罚。'Penalty Duration’允许DFM指定FlowFile应被处罚的时间长度。默认值为30秒。
Yield Duration:处理器可能会确定存在某种情况,使得处理器无论处理哪些数据都无法取得任何进展。例如,如果处理器要将数据推送到远程服务而该服务未响应,处理器将无法取得任何进展。因此,处理器应该“yield”,这将阻止处理器在一段时间内被调度运行。该时间段由设置“Yield Duration”来指定。默认值为1秒。
Bulletin level:公告级别。每当处理器写入其日志时,处理器也会生成一个公告。此设置指示在用户界面中应显示的最低级别的公告。默认情况下,公告级别设置为WARN,这意味着它将显示所有警告和错误级别的公告。设置此选项后可以很方便的看到错误日志信息而不是通过查找日志文件。
5、scheduling(调度设置)
Scheduling Strategy (调度策略)
调度策略有三种可能的选项:
Timer driven:这是默认模式。处理器将定期运行。运行处理器的时间间隔由Run Schedule选项定义。
Event driven:选择此模式时,将由一个事件触发处理器运行,当FlowFiles进入连接此处理器的Connections时,将产生这个事件。此模式目前被认为是实验性的,并非所有处理器都支持。选择此模式时,Run Schedule选项不可配置。此外,只有此模式下Concurrent Tasks选项可以设置为0。这种情况,线程数仅受管理员配置的事件驱动线程池的大小限制。
CRON驱动:当使用CRON驱动的调度模式时,处理器将定期运行,类似于定时器驱动的调度模式。CRON驱动模式提供了更大的灵活性。类似于quartz中的cron。
(Concurrent Tasks)并发任务
这可以控制处理器将使用的线程数。换句话说,它控制此处理器应同时处理多少个FlowFiles。增加此值通常会使处理器在相同的时间内处理更多数据。但是,它是通过使用其他处理器无法使用的系统资源来实现此目的。这基本上提供了处理器的相对权重 - 应该将多少系统资源分配给此处理器而不是其他处理器。该字段适用于大多数处理器。但是,某些类型的处理器只能使用单个任务进行调度。
(Run Schedule)运行计划
"Run Schedule"指示处理器运行的频率。此字段的有效值取决于所选的调度策略。如果使用事件驱动的调度策略,则此字段不可用。使用定时器驱动的调度策略时,该值是由数字后跟时间单位指定的持续时间。例如,1 second或5 mins。默认值0 sec表示处理器应尽可能频繁地运行,只要它有要处理的数据即可。使用CRON驱动的调度策略时,此值设置为cron表达式。
(Execution)执行
执行设置用于确定处理器将被调度执行的节点。选择"All Nodes"将导致在集群中的每个节点上调度此处理器。选择"Primary Node"将导致此处理器仅在主节点上进行调度。已配置"Primary Node"执行的处理器由处理器图标旁边的"P"标识,如下图所示
6、(Properties)属性
在下面的属性列表中,必填属性的名称以粗体显示。任何其他属性(不是粗体)都被认为是可选的。
File Size: 将使用的文件流的大小
Batch Size :每次调用时要传输出去的流文件的数量
Data Format :指定数据应该是文本还是二进制
Unique FlowFiles: 如果选择true,则生成的每个流文件都是惟一的。
如果选择false,此处理器将生成一个随机值,所有的流文件都是相同的内容,模仿更高的吞吐量时可以这样使用
Custom Text: 如果Data Format选择Text,且Unique FlowFiles选择为false,那么这个自定义文本将用作生成的流文件的内容,文件大小将被忽略。
如果Custom Text中使用了表达式语言,则每批生成的流文件只执行一次表达式语言的计算
支持表达式语言:true(只使用变量注册表进行计算)
Character Set: UTF-8 指定将自定义文本的字节写入流文件时要使用的编码
Mime Type:设置mime type,如text/plain
问号标记指出属性默认值(如果有默认值),以及属性是否支持表达式语言,如下图所示:
7、(comments)备注,填写自定义备注,如业务逻辑等。
8、右键Start 或者Run Once 运行处理器。
9、右键 View data provenance 可以查看数据的溯源信息。
点击i图标,查看文件的详情、属性、内容信息,如下图所示。
注:该处理器生成流文件固只能作为所设计流程的第一个处理器,不允许作为其他处理器传入连接关系。