Apache Nifi

第2章 NiFi基础应用篇
2.1 Apache NiFi术语介绍
DataFlow Manager
NiFi是一个强大数据流管理平台,为用户提供数据流的创建、修改以及删除操作。
FlowFile
在NiFi中FlowFile代表数据流中的数据以及这个数据的相关属性。FlowFile由两部分组成:FlowFile的属性和内容。FlowFile的内容指的就是数据流中数据,属性是对数据的描述,例如数据的大小等,通常由键值对组成。在NiFi中所有的FlowFile都会包含以下基本属性:
uuid:FlowFile的唯一标示。
filename:FlowFile磁盘存储的文件名称。
path:FlowFile磁盘存储的文件路径。

如下图:


Processor
Processor是NiFi中处理器组件,NiFi数据流通常由多个Processor组成,完成数据的获取、数据的提取、数据转换、数据路由以及数据的发送功能。

如下图就是利用NiFi控制台创建了一个名为GetFile的Processor,GetFile主要功能是获取本地磁盘文件中的内容。


Relationship
NiFi大部分processor都定义了Relationships(部分独立完成完整逻辑的Processor除外)。当FlowFile被Processor处理完之后便会被路由到一个或多个Relationships中,与Relationship相连接的下游processor会获取到路由到Relationship中的数据进行进一步处理,这样便完成了数据流中数据的相互传递。

如下图中的线框部分就表明这个Processor定义了两个Relationships, matched和unmatched。


Connection
Connection指在NiFi中选取Processor的一个或者多个Relationships与下游Processor建立的连接。

如下图在GetFile与PutFile之间通过Relationships中success Relationship建立连接,GetFile Processor获取本地的磁盘文件并生成了102个FlowFile,这个FlowFile被路由到success Relationship的Queue中,PutFile从success Relationship的Queue中按照配置的优先级策略(默认先进先出策略)获取FlowFile,并写入到新的本地磁盘文件中。


Controller Service
NiFi中通常会有很多的Processor,其中的一些Processor依赖了相同的配置或外部连接资源,Controller Service就是对这些依赖相同的配置或连接资源进行集中管理。对这些配置或者连接资源有依赖的processor可以通过Controller Service来对这些配置和连接资源进行引用而无需单独配置。

如下图便是一个管理数据库连接池的Controller Service,任何需要通过这个连接池连接数据库的Processor都可以直接引用这个Controller Service。


Reporting Task
NiFi提供了一种后台运行任务Reporting Task,它能完成对NiFi中所有事件的监控和统计功能。用户可以根据需要通过NiFi的控制台添加、删除或者修改一个Reporting Task。

如下图就是一个上报NiFi所有Controller运行状态的ReportingTask。


Funnel
NiFi的Funnel完成将多个Connection汇集成一个Connection的功能。

如下图有3个GetFile Processor,它们分别获取本地磁盘中不同等级的日志文件内容并输出到同一个LogAttribute Processor中,Funnel在这个例子中主要完成将3个GetFile Processor的Connection汇集成一个Connection并与Log Attribute建立Connection的作用。


Process Group

当一个很复杂的DataFlow出现的时候,我们希望能够对这个DataFlow进行抽象和分层,这样有助于对这个复杂的DataFlow进行逻辑理解和维护。NiFi对DataFlow提供了这种功能,可以对复杂DataFlow中某个逻辑单元的processor和connection抽象和归纳为一个独立的Process Group。如下图:


Port

Port为Process Group与DataFlow其它组件进行连接时候的端口。当DataFlow中有数据需要Process Group进行处理的时候,可以通过与Processor Group的Port来进行连接。如下图:


Remote Process Group

Remote Process Group和Process Group的功能类似,主要区别在于Process Group只针对单个的NiFi节点,而Remote Process Group可以处理来自于NiFi集群中其它各个节点的数据。如下图:


Bulletin

NiFi中的组件能够通过发布公告的方式来提醒使用者采取必要的措施。公告可以分为两种级别,分别为组件级别和系统级别。例如当Processor运行中出现异常,会在processor的右上角出现红色的组件级别的公告,当鼠标移到标示上的时候可以看到具体的错误信息。如下图:


Template
NiFi允许用户选取一个DataFlow或者子DataFlow来组成Template。用户可以在NiFi控制台直接利用已经导入的或者保存的Template来快速创建DataFlow。也可以下载Template的XML文件,并将文件直接导入其他NiFi节点中,这样就可以在其他的NiFi集群中使用这个Template,从而大大减少了相同DataFlow的创建工作。

如下图就是在NiFi中创建了一个名为“Template Sample”的Template。


flow.xml.gz
在NiFi的控制台中创建的所有DataFlow都会被存储到flow.xml.gz文件中。这个文件默认存放于nifi/conf路径下。另外,NiFi也提供机制对flow.xml.gz文件定期进行归档,异常情况下可以将flow.xml.gz文件删除,用归档文件替换flow.xml.gz就可以对NiFi的DataFlow进行恢复。flow.xml.gz在集群中的节点之间相互同步,当出现不一致的时候,此节点就会无法并入集群,这个时候将集群中Master里面的flow.xml.gz替换掉这个节点的flow.xml.gz即可解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值