![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NIFI
文章平均质量分 81
东南_bit
这个作者很懒,什么都没留下…
展开
-
NIFI源码学习-(六)NIFI与KETTLE区别
kettle和NIFI都是大数据工具,不过前者是CS架构,只能在本地客户端开发好job之后,把包部署出去,后者却能在BS架构下通过浏览器页面随时调整流程。但是这些都是只是表面。在网上也有对于二者的比较,说的到点的能说到二者对于实时性数据的支持上差异比较大,kettle几乎不支持实时性。本文详细说下这种差异导致的不同使用场景和内部原因。一、适用场景kettle:需要通过定时任务的方式,从不同的数据源进行ETL作业。此时数据多是已经产生了的。NIFI:需要与别的系统通过实时调用服务的方式,将数据原创 2022-05-25 17:39:03 · 4227 阅读 · 0 评论 -
NIFI源码学习-(五、3)NIFI集群的FlowFile负载均衡实现-FlowFile传递
上节说到,NIFI会在注册中心,维护这样一个数据结构:原创 2022-05-23 20:36:48 · 529 阅读 · 0 评论 -
NIFI源码学习-(五、2)NIFI集群的FlowFile负载均衡实现-注册中心
上节说到,NIFI在集群模式的时候,会对NIFI的任务流进行负载均衡,将处理器要处理的流文件分担到集群的各个节点来处理提升处理效率。本节来学习下NIFI负载均衡队列的实现。一、源码分析梳理下新建连接时候的流程,与启动处理器相似。控制器层:面板层:DAO层:FlowcController层这里构建了一个队列工厂,没有负载均衡的时候,新建一个 StandardFlowFileQueue 实例。当处于集群模式的时候,会新建一个SocketLoadBalancedFl..原创 2022-05-11 22:03:57 · 555 阅读 · 0 评论 -
NIFI源码学习-(五、1)NIFI的集群部署实现-Two-phase Commit(2PC)协议
NIFI是可以部署成集群的,在多台机器上分布式部署提高数据吞吐能力。本文第五章,通过源码,来梳理NIFI的分布式如何实现。在上一节 NIFI的 WAL 日志部分有提到,NIFI的数据,分为两部分,一个是在界面上可操作的配置信息部分,比如添加的处理器,新增的处理器组,两个处理器之间新增的连接,处理器的启停,另外一个就是flowFile部分,比如Web接口接到XML之后,拆分成了很多条。所以这部分也分为两部分来说。一、界面配置同步还是以处理器的启动为例,在本系列的第一篇文章中,就已经讲到了启动处理器原创 2022-05-09 20:38:23 · 1107 阅读 · 0 评论 -
NIFI源码学习-(四、3 )WAL细节
上篇文章理清楚了NIFI WAL机制实现的大致流程,但是想一想的话,还只是实现了在操作数据之前先写日志,但是每次每次修改都写日志,都得持久化到文件中,那效率这块儿是如何保证的呢?带着这个疑问,继续跟着上篇文章暂时搁置的 update 方法来一探究竟。进入到 SequentialAccessWriteAheadLog 成员变量 journal在checkpoint的时候,会对它进行更新,同时把 streamPool 也传了进去。接着看update方法,实现选择 LengthDelimit.原创 2022-04-22 19:36:16 · 329 阅读 · 0 评论 -
NIFI源码学习-(四、2)-WriteAheadFlowFileRepository
带着上篇文章的疑问,我们深入WAL实现的内部,我们看下记录日志的时候都有哪些操作。跟着这个updateRepository方法,我们可以进入WAL的具体实现。public interface FlowFileRepository extends Closeable { /** * 初始内容仓库,通过claimManager 可以将流文件的content部分写入内容仓库 */ void initialize(ResourceClaimManager cla.原创 2022-04-21 18:44:02 · 315 阅读 · 0 评论 -
NIFI源码学习-(四、1)WAL(Write Ahead Log)预写日志
nifi WAL 源码分析原创 2022-04-18 21:06:04 · 1176 阅读 · 0 评论 -
NIFI源码学习-(三)ProcessSession
在调用处理器的 onTrigger 方法的时候,传入了两个参数,ProcessContext context, final ProcessSession session进入到ProcessContext 的代码:注释写的比较清楚,为处理器和NIFI框架提供了一个桥梁,实际使用中,主要用来在处理器中获取页面上为处理器设置的各个属性。我们主要来关注 session 变量。从第一张图中可以看出,每次处理器执行,都会重新生成一个session,多线程时候每个线程都会生成一个。ProcessSes原创 2022-04-14 18:43:46 · 696 阅读 · 0 评论 -
NIFI源码学习-(二)处理器执行与调度
nifi的调度原创 2022-04-13 02:29:28 · 1436 阅读 · 0 评论 -
NIFI源码学习-(一)处理器启动
用了挺长时间的NIFI了,今天结合1.11.4版本的源码把对NIFI一些实现上的理解 整理一下当在界面上点击右键 start 一个处理器,会向这个地址发送一个请求: http://localhost:8080/nifi-api/processors/092f4a2b-0180-1000-3e18-f52febec01b8/run-status 处理这个请求的控制器位置如下:暂时抛开其他细节,747行这里基本上是把从URL 和body中的参数传.原创 2022-04-12 22:10:18 · 1370 阅读 · 0 评论