开发者学堂课程【NiFi 知识精讲与项目实战(第二阶段): Flow file 生成器2】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/706/detail/12534
Flow file 生成器2
flew file 生成器的工作流程,首先先添加一个处理器,叫 generate flow file,这是第一个点添加,添加完以后可以对进行一个设置,这里面大家一定要注意,因为 generate flow file 是流程的第一个处理器,一定要对的调度进行一个配置,
要把的这个处理的这个运转的间隔设置一个时间,否则零秒也就相当于会不间断的去运行,这对于的服务器来说是会有非常大的压力,这里面,改为五秒一次,五秒执行一次。
另外还要注意,execution 属性。这个属性在之前单机版的时候,是没有的,只有在集群的模式下才会有这个属性。默认的是 all nodes,这里面生成的时候,只需要在一个节点上去生成就可以了,如果在三台节点上同时去生成,一是这个服务器压力比较大,而且也不好进行测试,所以把这里面改为 primary note,
只在主节点上去进行。这个配置完以后,接下来就要设置 generate flow file 生成文件的一个策略。进入 property 配置项以后,在这个 file size 这个属性值上,需要设置所生成的这个数据的大小,这里把它设置为10B,然后,就是要设置这个 batch size,也就是每一次生成的文件,有几个,这里面设置三个,也就是一次,生成的就是三乘以十倍,就是30B 的数据。然后,还有一个叫 unique flow file,也就是说生成的数据,是不是唯一的,这里面把它改为处,也就是说每一个生成的这个文件,都是唯一的,都是不会重复的,然后点击保存,
接下来再来创建第二个处理器 replace text,也就是第一个,添加,这个时候要将它们两个连接在一起。
关联关系默认就选中这个 size,连接到一起以后,
接下来配置 replace text 处理器,点击配置,这时调度就不需要进行配置,因为执行速率间隔是由第一个节点来决定的,只有在接收到数据以后才会去运转。所以这个值是不需要进行设置的,另外这个节点,可以让它在集群,在整个集群当中去进行运行,这个时候它速率会比较快,不选择单节点是因为数据的来源在 generate flow file 这个数据来源,已经 diss,它生产数据多,这个压力就越大,生产数越少,压力就越少。而 execution 属性它并不会影响整体的负载压力,所以就让它在整个集训当中去进行运行。
可以运行 generate flow file,可以看到开始运转去生产数据,
接下来用 replace text 来进行接收,接收完之后们可以把保存到的一个文本文件中来进行查看,比如还是用 putfile来进行保存,可以把 generate flow file和replace text 两个进行一个关联,当成功的时候输出到的 putfile,失败的时候,让它还返回自身。可以先把进入 generate flow file 先停掉,这时可以看到队列中已经有了 generate flow file b所生成的数据了,现在数据一共是24个,
也就是一共生成了八次,因为每一个批次是三个,刚才设置的每一个批次是三个,24除以三肯定就是生成了八个批次的,大小是240Bbytes,因为设置的每一个文件是失败的。所以24就是240bytes,接下来要想去生成的文件,就必须要先用 replace text 去进行处理。
replace text 处理,将 replace text 当中的这个生成策略,修改成 always replace。
不管什么情况,都会进行替换,替换成了最终的结果是什么,在 replacement value 里面去进行修改,比如说这里面把它改为 hello word,
通过这样的变更以后,接收到的数据,它的内容全部都会变成 hello word,保存,这个时候就可以来运行的 replay text 了就会开始消费刚才队列当中的数据,消费完以后,它会将的数据发送到这个 putfile 的这个队列当中去,这个时候可以看到文件还是24个没有变,
但是它的大小已经产生了变化,就是因为它里面的文本内容,已经被变更,大小产生变化了。
最后,可以将的 putfile,写入到的一个文本当中,还写入到 export tmp target 里面,保存执行,
如图有错误,是关联关系没有指定,进行一个字连接,选中 future 和的 success,这个时候没有报错信息,可以启动的 putfile,开始消费的数据,并且消费完成,消费完成之后,没有任何报错信息,在这里面,在这个面板当中,可以清晰的看到这个完整的处理流程。这个完整的处理流程,五分钟之内处理的数据,generate 处理的数据,replace 也全部都有,Putfile 也全部都有。如下图
停止处理器,进入服务器,输入 cd/export/tmp,然后进入的 target 目录下,可以看到生成了很多数很多文件,任意选择一个文件来进行查看,
比如查看第一个,复制一下文件名输入,可以看到这个文本的内容就是叫 hello world,证明替换是已经生效的。