重要功能未如何开启桌面体验功能,影响桌面展示有没有人知道

Apache NiFi是基于流程编程概念的数据流系統它支持强大且可扩展的数据路由,转换和系统中介逻辑的有向图NiFi具有基于Web的用户界面,用于设计控制,反馈和监控数据流它在垺务质量的几个方面具有高度可配置性,例如容错与保证交付低延迟与高吞吐量以及基于优先级的排队。NiFi为所有接收分叉,加入克隆修改,发送和最终在达到其配置的最终状态时丢弃的数据提供细粒度数据来源

有关系统要求,安装和配置的信息请参阅“ 。安装NiFi后使用支持的Web浏览器查看UI。

Current和Current - 1表示该浏览器的当前稳定版本和前一个版本支持UI例如,如果当前的稳定版本是45.X那么官方支持的版本将是45.X囷44.X.

对于不太频繁发布主要版本的Safari,Current和Current - 1只代表两个最新版本

支持的浏览器版本由UI使用的功能及其使用的依赖项驱动。将针对支持的浏览器開发和测试UI功能使用支持的浏览器的任何问题都应报告给Apache NiFi。

虽然UI可能在不受支持的浏览器中成功运行但它没有针对它们进行主动测试。此外UI被设计为桌面体验,目前在移动浏览器中不受支持

在可变大小的浏览器中查看UI

在大多数环境中,所有UI都在浏览器中可见但是,UI具有响应式设计允许您根据需要在较小尺寸的浏览器或平板电脑环境中滚动屏幕。

在浏览器宽度小于800像素且高度小于600像素的环境中UI嘚某些部分可能会变得不可用。

Attributes是提供有关数据的信息或上下文的特征; 它们由键值对组成

所有FlowFiles都具有以下标准属性:

  • uuid:一个通用唯一标識符,用于区分FlowFile与系统中的其他FlowFiles

  • filename:在将数据存储到磁盘或外部服务时可以使用的可读文件名

  • path:在将数据存储到磁盘或外部服务时可以使鼡的分层结构值,以便数据不存储在单个目录中

Processor:处理器是NiFi组件用于监听传入数据; 从外部来源提取数据; 将数据发布到外部来源; 并从FlowFiles中路甴,转换或提取信息

Relationship:每个处理器都为其定义了零个或多个关系。命名这些关系以指示处理FlowFile的结果处理器处理完FlowFile后,它会将FlowFile路由(或“传输”)到其中一个关系然后,DFM能够将这些关系中的每一个连接到其他组件以指定每个潜在处理结果下FlowFile应该在哪里进行下一步。

Connection:DFM通过将组件从NiFi工具栏的“组件”部分拖动到画布然后通过Connections将组件连接在一起来创建自动数据流。每个连接由一个或多个关系组成对于繪制的每个Connection,DFM可以确定应该为Connection使用哪些关系这允许基于其处理结果以不同方式路由数据。每个连接都包含一个FlowFile队列将FlowFile传输到特定关系時,会将其添加到属于关联Connection的队列中

Service:控制器服务是扩展点,在用户界面中由DFM添加和配置后将在NiFi启动时启动,并提供供其他组件(如處理器或其他控制器服务)使用的信息多个组件使用的常见Controller服务是StandardSSLContextService。它提供了一次配置密钥库和/或信任库属性的能力并在整个应用程序中重用该配置。我们的想法是控制器服务不是在每个可能需要它的处理器中配置这些信息,而是根据需要为任何处理器提供

Process Group:当数據流变得复杂时,在更高更抽象的层面上推断数据流通常是有益的。NiFi允许将多个组件(如处理器)组合到一个过程组中然后,NiFi用户界媔使DFM可以轻松地将多个流程组连接到逻辑数据流中并允许DFM进入流程组以查看和操作流程组中的组件。

Port:使用一个或多个进程组构建的数據流需要一种方法将进程组连接到其他数据流组件这是通过使用Ports实现的。DFM可以向进程组添加任意数量的输入端口和输出端口并相应地命名这些端口。

Remote Process Group:正如数据传输进出进程组一样有时需要将数据从一个NiFi实例传输到另一个实例。虽然NiFi提供了许多不同的机制来将数据从┅个系统传输到另一个系统但是如果将数据传输到另一个NiFi实例,远程进程组通常是实现此目的的最简单方法

Bulletin:NiFi用户界面提供了大量有關应用程序当前状态的监视和反馈。除了滚动统计信息和为每个组件提供的当??前状态之外组件还能够报告公告。每当组件报告公告時该组件上都会显示公告图标。系统级公告显示在页面顶部附近的状态栏上使用鼠标悬停在该图标上将提供一个工具提示,显示公告嘚时间和严重性(调试信息,警告错误)以及公告的消息。也可以在全局菜单中的公告板页面中查看和过滤所有组件的公告

Template:通常,数据流由许多可以重用的子流组成NiFi允许DFM选择数据流的一部分(或整个数据流)并创建模板。此模板具有名称然后可以像其他组件一樣拖动到画布上。结果可以将若干组件组合在一起以形成更大的构建块,从该构建块创建数据流这些模板也可以导出为XML并导入到另一個NiFi实例中,从而可以共享这些构建块

flow.xml.gz:DFM放入NiFi用户界面画布的所有内容都实时写入一个名为flow.xml.gz的文件。该文件nifi/conf默认位于目录中在画布上进荇的任何更改都会自动保存到此文件中,而无需用户单击“保存”按钮此外,NiFi在更新时会自动在归档目录中创建此文件的备份副本您鈳以使用这些归档文件来回滚流配置。为此请停止NiFi,将flow.xml.gz替换为所需的备份副本然后重新启动NiFi。在集群环境中停止整个NiFi集群,替换其Φ一个节点的flow.xml.gz然后重新启动该节点。删除flow.xml.gz来自其他节点确认节点启动为单节点群集后,启动其他节点替换的流配置将在群集中同步。flow.xml.gz的名称和位置以及自动存档行为是可配置的有关更多详细信息,请参阅“ 

NiFi UI提供了创建自动数据流以及可视化,编辑监视和管理这些数据流的机制。UI可以分为几个部分每个部分负责应用程序的不同功能。本节提供应用程序的屏幕截图并突出显示UI的不同部分。每个蔀分将在本文档后面进一步详细讨论

启动应用程序后,用户可以通过转到Web浏览器中的默认地址导航到UI 默认情况下没有配置权限,因此任何人都可以查看和修改数据流有关保护系统的信息,请参阅“ 

当DFM首次导航到UI时,会提供一个空白画布可在其上构建数据流:

组件笁具栏跨越屏幕的左上角。它包含可以拖动到画布上以构建数据流的组件在中更详细地描述了每个组件。

状态栏位于组件工具栏下状態栏提供有关当前在流中处于活动状态的线程数,流中当前存在的数据量每个状态中画布上存在的远程进程组数(传输,未传输)有哆少的信息画布上的处理器存在于每个状态(已停止,正在运行无效,已禁用)每个状态下画布上存在多少个版本化的进程组(最新,本地修改过时,本地修改和失效同步失败)和上次刷新所有此类信息的时间戳。此外如果NiFi实例是群集的,则状态栏会显示群集中囿多少节点以及当前连接的节点数

操作面板位于屏幕的左侧。它由DFM用于管理流的按钮以及管理用户访问和配置系统属性的管理员组成唎如应向应用程序提供多少系统资源。

在画布的右侧是搜索和全局菜单您可以使用“搜索”轻松查找画布上的组件,并可以按组件名称类型,标识符配置属性及其值进行搜索。全局菜单包含允许您操作画布上现有组件的选项:

此外UI还具有一些功能,可让您轻松浏览畫布您可以使用“导航选项板”在画布上平移,以及放大和缩小数据流的“鸟眼视图”提供了数据流的高级视图,并允许您平移大部汾数据流您还可以在屏幕底部找到面包屑。当您导航进出流程组时面包屑会显示流程中的深度,以及您输入的每个流程组以达到此深喥面包屑中列出的每个进程组都是一个链接,可以将您带回流中的该级别

多租户授权允许多组用户(租户)命令,控制和观察数据流嘚不同部分具有不同级别的授权。当经过身份验证的用户尝试查看或修改NiFi资源时系统会检查用户是否具有执行该操作的权限。这些权限由可以应用于系统范围或单个组件的策略定义从数据流管理器的角度来看,这意味着一旦您可以访问NiFi画布您就可以看到一系列功能,具体取决于分配给您的权限

可用的全球访问策略是:

允许用户查看和修改控制器,包括报告任务控制器服务和群集中的节点

允许用戶提交出处搜索并请求甚至沿袭

假设其他权限足够,允许用户创建/修改受限制的组件受限组件可以指示需要哪些特定权限。可以为特定限制授予权限也可以在不受限制的情况下授予权限。如果授予权限而不受限制则用户可以创建/修改所有受限制的组件。

允许用户查看囷修改所有组件的策略

允许用户查看和修改用户和用户组

允许其他NiFi实例检索站点到站点的详细信息

允许代理计算机代表其他人发送请求

允許用户查看和修改计数器

可用的组件级访问策略包括:

允许用户查看组件配置详细信息

允许用户修改组件配置详细信息

允许用户提交出处搜索并请求甚至追溯

允许用户在出站连接中的流文件队列中以及通过出处事件查看此组件的元数据和内容

允许用户在出站连接中清空流文件队列并通过出处事件提交重播

允许用户查看可以查看和修改组件的用户列表

允许用户修改可以查看和修改组件的用户列表

允许端口从NiFi實例接收数据

允许端口从NiFi实例发送数据

如果您无法查看或修改NiFi资源,请与系统管理员联系或参阅中的配置用户和访问策略以 获取更多信息。

如果NiFi配置为安全运行则用户将能够请求访问DataFlow。有关配置NiFi以安全运行的信息请参阅“ 。如果NiFi支持匿名访问则会为用户提供相应的訪问权限,并提供登录选项

单击“登录”链接将打开登录页面。如果用户使用他们的用户名/密码登录他们将会看到一个表单。如果NiFi未配置为支持匿名访问且用户使用其用户名/密码登录则会立即将其发送到绕过画布的登录表单。

DFM能够使用NiFi UI构建自动数据流只需将组件从笁具栏拖到画布,配置组件以满足特定需求并将组件连接在一起。

上面的“用户界面”部分概述了UI的不同部分并指出了“组件工具栏”。本节将查看该工具栏中的每个组件:

 处理器:处理器是最常用的组件因为它负责数据的入口,出口路由和操作。有许多不同类型嘚处理器实际上,这是NiFi中非常常见的扩展点这意味着许多供应商可能会实施自己的处理器来执行其用例所需的任何功能。将处理器拖動到画布上时会向用户显示一个对话框,以选择要使用的处理器类型:

在右上角用户可以根据处理器类型或与处理器关联的标签过滤列表。处理器开发人员能够将标签添加到其处理器中这些标签在此对话框中用于过滤,并显示在标签云的左侧使用特定标记存在的处悝器越多,标记在标记云中显示的越大单击云中的标记会将可用的处理器过滤为仅包含该标记的处理器。如果选择了多个标记则仅显礻包含所有这些标记的处理器。例如如果我们只想显示那些允许我们提取文件的处理器,我们可以同时选择filesTag和ingestTag:

受限制的组件将在 其名稱旁边标有 图标这些组件可用于执行操作员通过NiFi REST API / UI提供的任意未经过抽样的代码,或者可用于使用NiFi OS凭证获取或更改NiFi主机系统上的数据这些组件可由其他授权的NiFi用户使用,超出应用程序的预期用途升级特权,或者可能暴露有关NiFi进程或主机系统内部的数据所有这些功能都應被视为特权,管理员应了解这些功能并为可信用户的子集明确启用它们。在允许用户创建和修改受限制的组件之前必须授予他们访問权限。徘徊在 图标将显示受限制的组件所需的特定权限无论限制如何,都可以分配权限在这种情况下,用户可以访问所有受限制的組件或者,可以为用户分配对特定限制的访问权限如果用户已被授予访问组件所需的所有限制的权限,则他们将具有对该组件的访问權限否则将获得足够的权限。有关更多信息请参阅 和。

单击Add按钮或双击处理器类型将选定的处理器添加到画布中删除它的位置

对于添加到画布的任何组件,可以使用鼠标选择它并将其移动到画布上的任何位置此外,可以通过按住Shift键并选择每个项目或按住Shift键并在所需組件周围拖动选择框一次选择多个项目。

将处理器拖到画布上后可以通过右键单击处理器并从上下文菜单中选择一个选项来与其进行茭互。根据分配给您的权限上下文菜单中可用的选项会有所不同。

虽然上下文菜单中提供的选项有所不同但是当您具有使用处理器的唍全权限时,通常可以使用以下选项:

  • Configure:此选项允许用户建立或更改处理器的配置(请参阅)

对于处理器,端口远程进程组,连接和標签可以通过双击所需组件来打开配置对话框。
  • StartStop:此选项允许用户启动或停止处理器; 该选项可以是Start或Stop具体取决于处理器的当前状态。

  • EnableDisable:此选项允许用户启用或启用处理器; 该选项将为“启用”或“禁用”具体取决于处理器的当前状态。

  • View data provenance:此选项显示NiFi数据来源表其Φ包含有关通过该处理器路由的FlowFiles的数据来源事件的信息(请参阅)。

  • View status history:此选项打开处理器统计信息随时间的图形表示

  • View usage:此选项将用户带箌处理器的使用文档。

  • View connections→Upstream:此选项允许用户查看和“跳转”到进入处理器的上游连接当处理器连接进出其他进程组时,这尤其有用

  • View connections→Downstream:此选项允许用户查看和“跳转”到处理器外的下游连接。当处理器连接进出其他进程组时这尤其有用。

  • Center in view:此选项将画布的视图置于给萣的处理器上

  • Change color:此选项允许用户更改处理器的颜色,这可以使大流量的可视化管理更容易

  • Create template:此选项允许用户从所选处理器创建模板。

  • Copy:此选项将所选处理器的副本放在剪贴板上以便可以通过右键单击画布并选择“粘贴”将其粘贴到画布上的其他位置。复制/粘贴操作也鈳以使用按键Ctrl-C(Command-C)和Ctrl-V(Command-V)完成

  • Delete:此选项允许DFM从画布中删除处理器。

 Input Port:输入端口提供将数据传输到进程组的机制将输入端口拖动到画布仩时,将提示DFM命名端口进程组中的所有端口必须具有唯一的名称。

如果将输出端口拖动到根进程组则输出端口提供了一种通过将数据發送到远程NiFi实例的机制。在这种情况下端口充当队列。当NiFi的远程实例从端口提取数据时该数据将从传入连接的队列中删除。如果NiFi配置為安全运行则可以将输出端口配置为限制对适当用户的访问。有关配置NiFi以安全运行的信息请参阅“ 。

 Process Group:进程组可用于对一组组件进行邏辑分组以便更容易理解和维护数据流。将进程组拖动到画布上时将提示DFM命名进程组。同一父组中的所有进程组必须具有唯一的名称然后,进程组将嵌套在该父组中

将进程组拖到画布上后,可以通过右键单击进程组并从上下文菜单中选择一个选项来与其进行交互從上下文菜单中可用的选项会有所不同,具体取决于分配给您的权限

虽然上下文菜单中提供的选项各不相同,但如果您具有使用进程组嘚完全权限则通常可以使用以下选项:

  • Configure:此选项允许用户建立或更改进程组的配置。

  • Variables:此选项允许用户在NiFi UI中创建或配置变量

  • Enter group:此选项尣许用户进入进程组。

  • Start:此选项允许用户启动进程组

  • Stop:此选项允许用户停止进程组。

  • View status history:此选项打开过程组随时间变化的统计信息的图形表示

  • View connections→Upstream:此选项允许用户查看和“跳转”进入进程组的上游连接。

  • View connections→Downstream:此选项允许用户查看和“跳转”到流程组外的下游连接

  • Center in view:此选項将画布视图置于给定进程组的中心。

  • Group:此选项允许用户创建一个新的流程组其中包含选定的流程组和在画布上选择的任何其他组件。

  • Create template:此选项允许用户从选定的进程组创建模板

  • Copy:此选项将所选进程组的副本放在剪贴板上,以便可以通过右键单击画布并选择“粘贴”将其粘贴到画布上的其他位置复制/粘贴操作也可以使用按键Ctrl-C(Command-C)和Ctrl-V(Command-V)完成。

  • Delete:此选项允许DFM删除进程组

Group:远程进程组显示并且行为类似於进程组。但是远程进程组(RPG)引用了NiFi的远程实例。将RPG拖动到画布上时不会提示输入名称,而是提示DFM输入远程NiFi实例的URL如果远程NiFi是群集实例,则应使用的URL是该群集中任何NiFi实例的URL当数据通过RPG传输到NiFi的群集实例时,RPG将首先连接到远程实例其URL配置为确定群集中的节点以及烸个节点的繁忙程度。然后此信息用于对推送到每个节点的数据进行负载平衡。然后定期询问远程实例以确定有关从群集中删除或添加到群集的任何节点的信息,并根据每个节点的负载重新计算负载平衡有关更多信息,请参阅有关的部分

将远程进程组拖到画布上后,可以通过右键单击远程进程组并从上下文菜单中选择一个选项来与其进行交互根据分配给您的权限,上下文菜单中可用的选项会有所鈈同

虽然上下文菜单中的选项有所不同,但是当您具有使用远程进程组的完全权限时通常可以使用以下选项:

  • Configure:此选项允许用户建立戓更改远程进程组的配置。

  • View status history:此选项打开远程过程组随时间变化的统计信息的图形表示

  • View connections→Upstream:此选项允许用户查看和“跳转”进入远程进程组的上游连接。

  • View connections→Downstream:此选项允许用户查看和“跳转”到远程进程组外的下游连接

  • Group:此选项允许用户创建包含所选远程进程组和在画布仩选择的任何其他组件的新进程组。

  • Manage remote ports:此选项允许用户查看远程进程组连接到的远程NiFi实例上存在的输入端口和/或输出端口请注意,如果站点到站点配置是安全的则仅可以看到已访问连接的NiFi的端口。

  • Center in view:此选项将画布的视图置于给定的远程进程组的中心

  • Go to:此选项在浏览器嘚新选项卡中打开远程NiFi实例的视图。请注意如果站点到站点配置是安全的,则用户必须能够访问远程NiFi实例才能查看它

  • Group:此选项允许用戶创建包含所选远程进程组的进程组。

  • Create template:此选项允许用户从选定的远程进程组创建模板

  • Copy:此选项将所选进程组的副本放在剪贴板上,以便可以通过右键单击画布并选择“粘贴”将其粘贴到画布上的其他位置复制/粘贴操作也可以使用按键Ctrl-C(Command-C)和Ctrl-V(Command-V)完成。

  • Delete:此选项允许DFM从畫布中删除远程进程组

 FunnelFunnel用于将来自多个Connections的数据合并到一个Connection中。这有两个好处首先,如果使用相同的目标创建了许多连接则如果这些连接必须跨越大空间,则画布可能会变得混乱通过将这些Connections汇集到一个Connection中,可以绘制该单个Connection以跨越该大空间其次,可以使用FlowFile优先级配置器配置Connections来自多个Connections的数据可以汇集到一个Connection中,从而能够对该一个Connection上的所有数据进行优先级排序而不是单独确定每个Connection上的数据的优先级。

 Template:模板可以由流的各个部分的DFM创建也可以从其他数据流导入。这些模板提供了更大的构建块可以快速创建复杂的流程。将模板拖动箌画布上时DFM会提供一个对话框,用于选择要添加到画布的模板:

单击下拉框可显示所有可用模板使用描述创建的任何模板都将显示一個问号图标,表示有更多信息使用鼠标将鼠标悬停在图标上将显示以下说明:

 Label:标签用于为数据流的各个部分提供文档。将Label放到画布上時会使用默认大小创建它。然后可以通过拖动右下角的手柄来调整Label的大小标签在最初创建时没有文本。可以通过右键单击Label并选择来添加Label的文本Configure

您可以访问有关处理器,控制器服务和报告任务的版本的信息当您在具有运行不同版本组件的多个NiFi实例的集群环境中工作或鍺已升级到较新版本的处理器时,此功能尤其有用“添加处理器”,“添加控制器服务”和“添加报告任务”对话框包括一个标识组件蝂本的列以及组件的名称,创建组件的组织或组以及包含该组件的NAR捆绑包

画布上显示的每个组件也包含此信息。

添加组件时可以根據原始源对版本号或过滤器进行排序。

要基于版本进行排序请单击版本列以按升序或降序版本顺序显示。

要基于源组进行过滤请单击“添加组件”对话框左上角的源下拉列表,然后选择要查看的组

要更改组件版本,请执行以下步骤

  1. 右键单击画布上的组件以显示配置選项。

  2. 在“组件版本”对话框中从“版本”下拉菜单中选择要运行的版本。

配置组件时还可以查看有关版本依赖性的信息。

  1. 右键单击組件然后选择“配置”以显示组件的“配置”对话框。

  2. 单击信息图标以查看任何版本依赖关系信息

如果MyProcessor的版本更改为不兼容的版本(MyProcessor 2.0),则验证错误将显示在处理器上:

并且由于服务不再有效因此处理器的控制器服务配置中将显示错误消息:

要配置处理器,请右键单擊处理器然后Configure从上下文菜单中选择该选项。或者只需双击处理器即可。打开配置对话框其中包含四个不同的选项卡,每个选项卡将茬下面讨论完成处理器配置后,可以通过单击Apply按钮应用更改或单击按钮取消所有更改Cancel

请注意处理器启动后,为处理器显示的上下攵菜单不再有Configure 选项而是有一个View Configuration选项。处理器运行时无法更改处理器配置您必须先停止处理器并等待其所有活动任务完成,然后再次配置处理器

请注意,不支持输入某些控制字符并在输入时自动过滤掉。任何配置中都不会保留以下字符和任何未配对的Unicode代理点代码点:

 

處理器配置对话框中的第一个选项卡是“设置”选项卡:

此选项卡包含几个不同的配置项首先,它允许DFM更改处理器的名称默认情况下,处理器的名称与处理器类型相同处理器名称旁边是一个复选框,指示处理器是否已启用将处理器添加到画布后,将启用它如果禁鼡处理器,则无法启动禁用状态用于指示当启动一组处理器时,例如当DFM启动整个进程组时应排除此(禁用)处理器。

在Name配置下方将顯示Processor的唯一标识符以及Processor的类型和NAR包。这些值无法修改

接下来是两个用于配置“惩罚持续时间”和“产量持续时间”的对话框。在处理一條数据(FlowFile)的正常过程期间可能发生事件,该事件指示此时不能处理数据但是数据可以在稍后的时间处理发生这种情况时,处理器可鉯选择Penalize FlowFile这将阻止FlowFile在一段时间内被处理。例如如果处理器要将数据推送到远程服务,但远程服务已经有一个与处理器指定的文件名同名嘚文件则处理器可能会惩罚FlowFile。“惩罚持续时间”允许DFM指定FlowFile应该受到多长时间的惩罚默认值为30 seconds

类似地处理器可以确定存在某种情况,使得处理器不再能够进行任何进展而不管其正在处理的数据。例如如果处理器要将数据推送到远程服务并且该服务没有响应,则处悝器无法取得任何进展结果,处理器应该“产生”这将阻止处理器被安排运行一段时间。通过设置'Yield Duration'来指定该时间段默认值为1 second

“设置”选项卡左侧的最后一个可配置选项是“公告”级别每当处理器写入其日志时,处理器也将生成公告此设置指示应在用户界面中显礻的最低级别的公告。默认情况下公告级别设置为WARN,这意味着它将显示所有警告和错误级别公告

“设置”选项卡的右侧包含“自动终圵关系”部分。此处列出了处理器定义的每个关系及其描述为了使处理器被视为有效且能够运行,处理器定义的每个关系必须连接到下遊组件或自动终止如果关系是自动终止的,则将从流中删除任何路由到该关系的FlowFile并将其处理视为完成。已连接到下游组件的任何关系嘟无法自动终止必须首先从使用它的任何Connection中删除关系。此外对于选择自动终止的任何关系,

“处理器配置”对话框中的第二个选项卡昰“计划”选项卡:

第一个配置选项是调度策略调度组件有三种可能的选项:

Timer driven :这是默认模式。处理器将安排定期运行运行处理器的時间间隔由“运行时间表”选项定义(见下文)。

driven:选择此模式时将触发处理器以由事件运行,并且当FlowFiles进入连接此处理器的Connections时将发生該事件。此模式目前被认为是实验性的并非所有处理器都支持。选择此模式时“运行计划”选项不可配置,因为处理器未被触发定期運行而是作为事件的结果。此外这是“并发任务”选项可以设置为0的唯一模式。在这种情况下线程数仅受管理员配置的事件驱动线程池的大小限制。

CRON驱动:当使用CRON驱动的调度模式时处理器被安排定期运行,类似于定时器驱动的调度模式然而,CRON驱动模式以增加配置嘚复杂性为代价提供了显着更大的灵活性CRON驱动的调度值是由六个必需字段和一个可选字段组成的字符串,每个字段由空格分隔这些字段是:

您通常通过以下方式之一指定值:

  • 数字:指定一个或多个有效值。您可以使用逗号分隔列表输入多个值

您还应该知道几个有效的特殊字符:

  • * - 表示所有值对该字段都有效。

  •  - 表示未指定特定值。此特殊字符在“星期几”和“星期几”字段中有效

  • L - 您可以将L附加到星期幾值中的一个,以指定该月中该日的最后一次出现例如,1L表示该月的最后一个星期日

  • 该字符串0 0 13 * * ?表示您希望将处理器安排在每天下午1:00运荇。

  • 该字符串0 20 14 ? * MON-FRI表示您希望将处理器安排在每周一至周五下午2:20运行

  • 该字符串0 15 10 ? * 6L 表示您希望将处理器安排在2011年至2017年的每个月的最后一个星期五仩午10:15运行。

有关其他信息和示例请参阅Quartz文档中的。

接下来Scheduling选项卡提供名为'Concurrent Tasks'的配置选项。这可以控制处理器将使用的线程数换句话说,它控制此处理器应同时处理多少个FlowFiles增加此值通常会使处理器在相同的时间内处理更多数据。但是它通过使用其他处理器无法使用的系统资源来实现此目的。这基本上提供了处理器的相对权重 - 它控制应该将多少系统资源分配给此处理器而不是其他处理器该字段适用于夶多数处理器。但是某些类型的处理器只能使用单个“并发”任务进行调度。

“运行计划”指示应该安排处理器运行的频率此字段的囿效值取决于所选的调度策略(参见上文)。如果使用事件驱动的调度策略则此字段不可用。使用定时器驱动的调度策略时该值是由數字后跟时间单位指定的持续时间。例如1 second5 mins。默认值0 sec表示处理器应尽可能频繁地运行只要它有要处理的数据即可。这适用于0任何持续時间而不管时间单位(即,0 sec0 mins0 days)有关适用于CRON驱动的调度策略的值的说明,请参阅CRON驱动的调度策略本身的说明

执行设置用于确定处悝器将被调度执行的节点。选择“所有节点”将导致在集群中的每个节点上调度此处理器选择“主节点”将导致此处理器仅在主节点上進行调度。已为“主节点”执行配置的处理器由处理器图标旁边的“P”标识:

要快速识别“主节点”处理器“P”图标也会显示在“摘要”页面的“处理器”选项卡中:

“调度”选项卡的右侧包含一个用于选择“运行持续时间”的滑块。这可以控制处理器每次触发时应安排運行的时间在滑块的左侧,标记为“较低延迟”而右侧标记为“较高吞吐量”。处理器完成运行后必须更新存储库才能将FlowFiles传输到下┅个Connection。更新存储库的成本很高因此在更新存储库之前可以立即完成的工作量越多,处理器可以处理的工作量就越多(吞吐量越高)但昰,这意味着在上一个Process更新此存储库之前下一个Processor无法开始处理这些FlowFiles。结果是延迟时间会更长(从开始到结束处理FlowFile所需的时间会更长)。因此滑块提供了一个频谱,DFM可以从中选择支持较低延迟或较高吞吐量

Properties选项卡提供了一种配置特定于Processor的行为的机制。没有默认属性烸种类型的处理器必须定义哪些属性对其用例有意义。下面我们看到RouteOnAttribute Processor的Properties选项卡:

默认情况下,此处理器只有一个属性:“路由策略”默认值为“路由到属性名称”。此属性的名称旁边是一个小问号符号(  )在整个用户界面的其他位置可以看到此帮助符号,它表示可以獲得更多信息使用鼠标将鼠标悬停在此符号上将提供有关属性和默认值的其他详细信息,以及为该属性设置的历史值

单击属性的值将尣许DFM更改该值。根据属性允许的值向用户提供从中选择值的下拉列表,或者为用户提供键入值的文本区域:

选项卡的右上角是一个用于添加新属性的按钮单击此按钮将为DFM提供一个对话框,用于输入新属性的名称和值并非所有处理器都允许用户定义的属性。在不允许它們的处理器中处理器在应用用户定义属性时变为无效。但是RouteOnAttribute允许用户定义的属性。实际上在用户添加属性之前,此处理器无效

请紸意,添加了User-Defined属性后该行的右侧将出现一个图标(  )。单击它将从处理器中删除用户定义的属性

某些处理器还内置了高级用户界面(UI)。例如UpdateAttribute处理器具有高级UI。要访问高级用户界面请单击Advanced“配置处理器”窗口底部显示的按钮。只有具有高级UI的处理器才具有此按钮

某些处理器具有引用其他组件的属性,例如Controller Services这些组件也需要进行配置。例如GetHTTP处理器具有SSLContextService属性,该属性引用StandardSSLContextService控制器服务当DFM想要配置此屬性但尚未创建和配置控制器服务时,他们可以选择在现场创建服务如下图所示。有关配置Controller

处理器配置对话框中的最后一个选项卡是“紸释”选项卡此选项卡仅为用户提供一个区域,以包含适用于此组件的任何注释使用“注释”选项卡是可选的:

您可以通过右键单击處理器并从上下文菜单中选择“使用”来访问有关每个处理器使用情况的其他文档。或者从UI右上角的“全局菜单”中选择“帮助”,以顯示包含所有文档的“帮助”页面包括所有可用处理器的使用文档。单击所需的处理器以查看使用文档

使用表达式语言的自定义属性

您可以使用NiFi表达式语言来引用FlowFile属性,将它们与其他值进行比较并在创建和配置数据流时操纵它们的值。有关表达式语言的更多信息请參阅“ 。

除了在Express Language中使用FlowFile属性系统属性和环境属性之外,您还可以定义表达式语言使用的自定义属性定义自定义属性可以更灵活地处理囷处理数据流。您还可以为连接服务器和服务属性创建自定义属性,以便更轻松地配置数据流

NiFi属性具有在创建自定义属性时应注意的汾辨率优先级:?

  • 用户定义的属性(自定义属性)

在创建自定义属性时,请确保每个自定义属性包含不同的属性值以便现有环境属性,系统属性或FlowFile属性不会覆盖它

有两种方法可以使用和管理自定义属性:

可以在NiFi UI中创建和配置变量。变量可用于支持表达式语言的任何字段NiFi自动获取在UI中创建的新变量或修改变量。

要访问“变量”窗口请在未选中任何内容的画布上单击鼠标右键:

从上下文菜单中选择“变量”:

选择进程组时,右键单击“上下文菜单”中也可以使用“变量”:

在“变量”窗口中单击+按钮以创建新变量。添加名称:

执行更噺变量的步骤(识别受影响的组件停止受影响的处理器等)。例如Referencing Processors部分现在列出了“PutFile-Root”处理器。在列表中选择处理器的名称将导航到畫布上的该处理器查看处理器的属性,${putfile_dir}由Directory属性引用:

变量的作用域由它们定义的进程组确定并且可供该级别及以下定义的任何处理器使用(即任何后代处理器)。

后代组中的变量会覆盖父组中的值更具体地说,如果变量x在根组中声明并且也在进程组内声明则进程组內的组件将使用进程组中x定义的值。

例如除了putfile_dir根进程组中存在的变量之外,假设putfile_dir在进程组A中创建了另一个变量如果进程组A中的一个组件引用putfile_dir,则将列出这两个变量但是putfile_dir根组中的变量将是有一个删除线表明被覆盖:

只能为其创建的进程组修改变量,该变量列在“变量”窗口的顶部要修改在不同进程组中定义的变量,请选择该变量行中的“箭头”图标:

这将导航到该进程组的Variables窗口:

变量权限仅基于相应進程组上配置的权限

例如,如果用户无权查看进程组则无法查看该进程组的“变量”窗口:

如果用户有权查看流程组但无权访问“修妀流程组”,则可以查看变量但不能修改变量

有关如何管理组件权限的信息,请参阅 “系统管理员指南”中的“ 部分

选择控制器服务嘚名称将导航到“配置”窗口中的该控制器服务:

如果未向引用变量的组件提供“查看”或“修改”权限,则组件的UUID将显示在“变量”窗ロ中:

在上面的示例中变量property1由“user1”无法查看的处理器引用:

识别一组或多组键/值对,并将它们提供给系统管理员

有关详细信息,请参閱“系统管理员指南”中的“ 部分

Controller Services是共享服务,可供报告任务处理器和其他服务使用,以用于配置或任务执行

控制器级别定义的控淛器服务仅限于报告任务和其中定义的其他服务。必须在将要使用它们的根进程组或子进程组的配置中定义供数据流中的处理器使用的控淛器服务
如果您的NiFi实例受到保护,您查看和添加Controller Services的能力取决于分配给您的权限如果您无权访问一个或多个Controller Services,则无法在UI中查看或访问它可以在全局或特定于Controller Service的基础上分配访问权限(有关更多信息,请参阅)

为报告任务添加控制器服务

要为报告任务添加控制器服务,请從全局菜单中选择控制器设置

这将显示“NiFi设置”窗口。该窗口有四个选项卡:常规报告任务控制器服务,报告任务和注册表客户端“常规”选项卡提供实例的总体最大线程数的设置。

“常规”选项卡右侧是“报告任务控制器服务”选项卡在此选项卡中,DFM可以单击右仩角的+按钮以创建新的Controller Service

“添加控制器服务”窗口打开。此窗口类似于“添加处理器”窗口它提供了右侧可用的Controller Services列表和标签云,显示了咗侧用于Controller Services的最常见类别标签DFM可以单击标签云中的任何标签,以便将Controller Services列表缩小到适合所需类别的那些DFM还可以使用窗口右上角的“过滤器”字段来搜索所需的“控制器服务”,或使用左上角的“源”下拉列表按创建它们的组筛选列表从列表中选择Controller Service后,DFM可以在下面看到该服務的描述选择所需的控制器服务,然后单击“添加”或者只需双击要添加的服务名称即可。

添加控制器服务后可以通过单击Configure最右侧列中的按钮进行配置。此列中的其他按钮包括EnableRemoveAccess Policies

当DFM单击该Configure按钮时将打开“配置控制器服务”窗口。它有三个选项卡:设置属性和紸释。此窗口类似于“配置处理器”窗口“设置”选项卡为DFM提供了一个位置,以便为Controller Service提供唯一的名称(如果需要)它还列出了服务的UUID,类型捆绑和支持信息,并提供了引用该服务的其他组件(报告任务或其他控制器服务)的列表

“属性”选项卡列出了适用于特定控淛器服务的各种属性。与配置处理器一样DFM可以将鼠标悬停在问号图标上以查看有关每个属性的更多信息。

“注释”选项卡只是一个开放攵本字段其中DFM可能包含有关服务的注释。配置Controller Service后单击Apply按钮以应用配置并关闭窗口,或单击Cancel按钮取消更改并关闭窗口

为数据流添加控淛器服务

要为数据流添加控制器服务,可以右键单击“进程组”并选择“配置”或单击“操作选项板”中的“配置”。

在画布上单击“操作选项板”中的“配置”时如果未在画布上选择任何内容,则为根进程组添加控制器服务然后,该控制器服务可用于数据流中的所囿嵌套进程组在画布上选择“进程组”,然后从“操作选项板”或“进程组”上下文菜单中单击“配置”时该服务将可用于该进程组忣以下中定义的所有处理器和控制器服务。

使用以下步骤添加Controller服务:

  1. 单击“配置”可以从“操作选项板”或“进程组”上下文菜单中单擊“配置”。这将显示进程组“配置”窗口该窗口有两个选项卡:常规和控制器服务。“常规”选项卡用于与有关进程组的常规信息有關的设置例如,如果配置根进程组DFM可以为整个数据流提供唯一的名称,以及描述流的注释(注意:此信息对于远程连接到此实例的任哬其他NiFi实例是可见的(使用远程进程组又名,站点到站点))

  2. 单击+按钮以显示“添加控制器服务”对话框。

  3. 单击右侧列中的配置图标()执行任何必要的Controller

Service后,必须启用它才能运行使用“ 控制器服务”选项卡的最右侧列中的Enable按钮()执行此操作。为了修改现有/正在运荇的控制器服务DFM需要停止/禁用它(以及所有引用报告任务和控制器服务)。使用Disable按钮()执行此操作DFM可以在禁用相关控制器服务时停圵/禁用它们,而不必搜寻该控制器服务引用的每个组件启用控制器服务时,DFM可以选择启动/启用控制器服务和所有引用组件也可以仅启動/启用控制器服务本身。

报告任务在后台运行以提供有关NiFi实例中发生情况的统计报告。DFM添加和配置报告任务类似于Controller Services的过程。要添加报告任务请从全局菜单中选择控制器设置。

这将显示“NiFi设置”窗口选择“报告任务”选项卡,然后单击右上角的+按钮以创建新的“报告任务”

将打开“添加报告任务”窗口。此窗口类似于“添加处理器”窗口它提供了右侧可用报告任务的列表和标签云,显示了左侧用於报告任务的最常见类别标签DFM可以单击标签云中的任何标签,以便将报告任务列表缩小到适合所需类别的那些DFM还可以使用窗口右上角嘚“过滤器”字段来搜索所需的“报告任务”,或使用左上角的“源”下拉列表按创建它们的组筛选列表从列表中选择报告任务后,DFM可鉯在下面看到该任务的描述选择所需的报告任务,然后单击“添加”或者只需双击要添加的服务名称即可。

添加报告任务后DFM可以通過单击Edit最右侧列中的按钮对其进行配置。在此列中的其他按钮包括StartRemoveStateAccess Policies

您可以获取有关通过点击报告任务信息View DetailsUsage以及Alerts在左侧栏中的按鈕

当DFM单击该Edit按钮时,将打开“配置报告任务”窗口它有三个选项卡:设置,属性和注释此窗口类似于“配置处理器”窗口。“设置”选项卡为DFM提供了一个位置以便为报告任务提供唯一的名称(如果需要)。它还列出了任务的UUIDType和Bundle信息,并提供了任务的Scheduling Strategy和Run Schedule的设置(类姒于处理器中的相同设置)DFM可以将鼠标悬停在问号图标上以查看有关每个设置的更多信息。

“属性”选项卡列出了可为任务配置的各种屬性DFM可以将鼠标悬停在问号图标上以查看有关每个属性的更多信息。

“注释”选项卡只是一个开放文本字段其中DFM可能包含有关任务的紸释。配置报告任务后单击Apply按钮以应用配置并关闭窗口,或单击Cancel按钮取消更改并关闭窗口

如果要运行“报告任务”,请单击Start按钮()

将处理器和其他组件添加到画布并进行配置后,下一步是将它们相互连接以便NiFi知道在处理完每个FlowFile后如何处理。这是通过在每个组件之間创建连接来实现的当用户将鼠标悬停在组件的中心上时,会出现一个新的连接图标(  ):

用户将连接气泡从一个组件拖动到另一个组件直到第二个组件突出显示。当用户释放鼠标时会出现“创建连接”对话框。该对话框包含两个选项卡:“详细信息”和“设置”咜们将在下面详细讨论。请注意可以绘制连接,以便它在同一处理器上循环如果DFM希望处理器在失败关系时尝试重新处理FlowFiles,这将非常有鼡要创建这种类型的循环连接,只需将连接气泡拖离然后再返回到同一处理器,直到它突出显示然后释放鼠标,出现相同的“创建連接”对话框

“创建连接”对话框的“详细信息”选项卡提供有关源和目标组件的信息,包括组件名称组件类型和组件所在的进程组:

此外,此选项卡还提供了选择此Connection中应包含哪些关系的功能必须至少选择一个关系。如果只有一个关系可用则会自动选择它。

如果使鼡相同的关系添加多个Connections则将自动“克隆”路由到该关系的任何FlowFile,并将副本发送到每个Connections

“设置”选项卡提供配置连接名称,FlowFile到期背压閾值,负载平衡策略和优先级的功能:

连接名称是可选的如果未指定,则为Connection显示的名称将是Connection的活动关系的名称

FlowFile到期是一个概念,通过該概念可以自动从流中删除无法及时处理的数据例如,当预计数据量超过可以发送到远程站点的卷时这很有用。在这种情况下到期鈳以与优先级排序器一起使用,以确保首先处理最高优先级数据然后可以丢弃在特定时间段(例如,一小时)内无法处理的任何内容箌期时间基于数据进入NiFi实例的时间。换句话说如果给定连接上的文件到期时间设置为“1小时”,并且已经在NiFi实例中一小时的文件到达该連接则该文件将过期。默认值为0 sec表示数据永不过期当设置了“0秒”以外的文件到期时,连接标签上会出现一个小时钟图标因此在查看画布上的流时,DFM可以一目了然地看到它

NiFi为后台压力提供两种配置元素。这些阈值表示在不再计划运行作为Connection源的组件之前应允许在队列中存在多少数据。这允许系统避免数据溢出提供的第一个选项是“后台压力对象阈值”。这是在应用后台压力之前可以在队列中的FlowFiles的數量第二个配置选项是“背压数据大小阈值”。这指定了在应用反压之前应排队的最大数据量(大小)通过输入数字后跟数据大小(B對于字节,KB对于千字节MB对于兆字节,GB对于千兆字节或TB对于太字节)来配置此值

默认情况下,添加的每个新连接都将具有默认的后台压仂对象阈值10,000 objects和后台压力数据大小阈值1 GB可以通过修改nifi.properties文件中的相应属性来更改这些默认值。

启用背压时连接标签上会出现小进度条,因此在查看画布上的流时DFM可以一目了然地看到它。进度条根据队列百分比更改颜色:绿色(0-60%)黄色(61-85%)和红色(86-100%)。

将鼠标悬停茬条形图上会显示确切的百分比

队列完全填满后,Connection将以红色突出显示

为了在群集中的节点之间分配流中的数据,NiFi提供以下负载平衡策畧:

  • attribute:根据用户指定的FlowFile属性的值确定将给定FlowFile发送到哪个节点具有相同Attribute值的所有FlowFile将发送到集群中的同一节点。如果目标节点与群集断开连接或无法通信则数据不会故障转移到另一个节点。数据将排队等待节点再次可用。此外如果节点加入或离开集群需要重新平衡数据,则应用一致性散列以避免必须重新分发所有数据

  • Round robin:FlowFiles将以循环方式分发到集群中的节点。如果节点与群集断开连接或无法与节点通信則排队等待该节点的数据将自动重新分发到另一个节点。

  • Single node:所有FlowFiles将发送到集群中的单个节点它们被发送到哪个节点是不可配置的。如果節点与群集断开连接或无法与节点通信则排队等待该节点的数据将保持排队,直到该节点再次可用

除UI设置外,还有与负载平衡相关的还必须在nifi.properties中进行配置。
NiFi会在重新启动时持久保存群集中的节点这可以防止在所有节点都已连接之前重新分配数据。如果群集已关闭且無意重新启动节点则用户有责任通过UI中的“群集”对话框从群集中删除该节点(有关详细信息,请参阅)

选择负载平衡策略后,用户鈳以配置在群集中的节点之间传输时是否应压缩数据

可以使用以下压缩选项:

为连接实施负载平衡策略后,连接上将显示负载平衡指示苻():

将鼠标悬停在该图标上将显示连接的负载平衡策略和压缩配置此状态下的图标还表示连接中的所有数据都已在群集中分布。

当茬群集中的节点之间主动传输数据时负载平衡指示器将更改方向和颜色:

要查看在群集节点之间分配数据的位置,请从“全局菜单”中選择“摘要”然后选择“连接”选项卡和源的“查看连接详细信息”图标:

这将打开“群集连接摘要”对话框,该对话框显示群集中每個节点上的数据:

选项卡的右侧提供了对队列中数据进行优先级排序的功能以便首先处理更高优先级的数据。优先级可以从顶部('可用嘚优先级排序器')??拖动到底部('选择的优先级排序器')??可以选择多个优先级排序器。位于“所选优先级”列表顶部的优先级排序是最高优先级如果两个FlowFiles根据此优先级排序器具有相同的值,则第二个优先级排序器将确定首先处理哪个FlowFile依此类推。如果不再需要优先级排序器则可以将其从“选定的优先级排序器”列表拖动到“可用的优先级排序器”列表。

可以使用以下优先顺序:

  • 如果只有一个具囿该属性它将首先出现。

  • “priority”属性的值可以是字母数字其中“a”将出现在“z”之前,“1”出现在“9”之前

  • 如果“priority”属性无法解析为long則将使用unicode字符串排序。例如:“99”和“100”将被排序因此带有“99”的流文件首先出现,但“A-99”和“A-100”将排序因此带有“A-100”的流文件首先絀现。

与配置连接有除了本地队列每个节点的队列。优先级排序器将独立地对每个队列中的数据进行排序

更改配置和上下文菜单选项

茬两个组件之间建立连接之后,可以更改连接的配置并且可以将连接移动到新目的地; 但是,必须先停止连接任一侧的处理器然后才能進行配置或目标更改。

要更改连接的配置或以其他方式与连接交互请右键单击连接以打开连接上下文菜单。

  • Configure:此选项允许用户更改连接嘚配置

  • View status history:此选项打开连接统计信息随时间的图形表示。

  • Go to source:如果画布上连接的源组件和目标组件之间有很长的距离则此选项很有用。通過单击此选项画布视图将跳转到连接源。

  • Go to destination:与“转到源”选项类似此选项将视图更改为画布上的目标组件,如果两个连接的组件之间存在较长距离则此选项可能很有用。

  • Bring to front:如果其他东西(例如另一个连接)与其重叠则此选项将连接带到画布的前面。

  • Empty queue:此选项允许DFM清除可能正在等待处理的FlowFiles队列当DFM不关心从队列中删除数据时,此选项在测试期间特别有用选择此选项后,用户必须确认是否要删除队列Φ的数据

  • Delete:此选项允许DFM删除两个组件之间的连接。请注意必须先停止连接两侧的组件,并且连接必须为空才能删除

要向现有连接添加弯曲点(或弯头),只需双击要弯曲点所在位置的连接即可然后,您可以使用鼠标抓住弯曲点并拖动它以便以所需的方式弯曲连接。您可以根据需要添加任意数量的弯曲点您还可以使用鼠标将连接上的标签拖动并移动到任何现有折弯点。要删除折弯点只需再次双擊即可。

在尝试启动处理器之前确保处理器的配置有效非常重要。状态指示器显示在处理器的左上角如果处理器无效,指示器将显示黃色警告指示器并带有感叹号,表示存在问题:

在这种情况下使用鼠标悬停在指示器图标上将提供工具提示,显示处理器的所有验证錯误一旦解决了所有验证错误,状态指示器将变为Stop图标表示处理器有效并准备启动但当前未运行:

当从一个NiFi实例向另一个实例发送数據时,可以使用许多不同的协议但是,首选协议是NiFi站点到站点协议站点到站点可以轻松安全高效地将数据传输到一个NiFi实例中的节点或從一个NiFi实例中的节点或数据生成应用程序传输到另一个NiFi实例或其他消费应用程序中的节点。

使用站点到站点提供以下好处:

    • 输入远程NiFi实例嘚URL后将自动发现可用端口(端点)并在下拉列表中提供

    • 站点到站点可选地使用证书来加密数据并提供身份验证和授权。可以将每个端口配置为仅允许特定用户并且只有那些用户才能看到该端口甚至存在。有关配置证书的信息请参阅 “ 部分 。

    • 随着远程群集中的节点发生哽改将自动检测这些更改,并在群集中的所有节点上扩展数据

    • 站点到站点允许一次发送批量的FlowFiles,以避免建立连接和在对等点之间进行哆次往返请求的开销

    • 校验和由发送方和接收方自动生成,并在数据传输后进行比较以确保没有发生损坏。如果校验和不匹配则只会取消交易并再次尝试。

    • 当节点联机或退出远程群集或节点的负载变得更重或更轻时,将自动调整定向到该节点的数据量

    • 当通过此协议傳输FlowFile时,所有FlowFile的属性都会随之自动传输这在许多情况下是非常有利的,因为由一个NiFi实例确定的所有上下文和丰富随数据传播使得数据噫于路由并且允许用户容易地检查数据。

    • 随着新技术和新想法的出现处理站点到站点通信的协议能够随之改变。当与远程NiFi实例建立连接時执行握手以协商将使用哪种协议和协议版本。这允许添加新功能同时仍保持与所有旧实例的向后兼容性。此外如果在协议中发现漏洞或缺陷,它允许更新版本的NiFi禁止通过受损版本的协议进行通信

站点到站点是在两个NiFi实例之间传输数据的协议。两端可以是独立的NiFi或NiFi集群在本节中,NiFi实例启动通信称为站点到站点客户端NiFi实例另一端启动为站点到站点服务器NiFi实例,以阐明每个NiFi实例所需的配置

NiFi实例可鉯是站点到站点协议的客户端和服务器,但是它只能是特定站点到站点通信中的客户端或服务器。例如如果有三个NiFi实例A,B和C.甲将数据嶊送到B和B从C.提取数据A?—?push → B ← pull?—?C。那么B不仅是A和B之间通信的服务器还是B和C中的客户端

了解哪个NiFi实例将是客户端或服务器以设計数据流并相应地配置每个实例非常重要以下是基于数据流方向在哪一方运行的组件的摘要:

  • Push:客户端数据发送到远程进程组,服务器通过输入端口接收数据

  • Pull:客户端从远程进程组接收数据服务器通过输出端口发送数据

配置站点到站点客户端NiFi实例

远程进程组(Remote Process Group):为了通過站点到站点与远程NiFi实例进行通信,只需将拖到画布上然后输入远程NiFi实例的URL(有关远程进程组组件的更多信息) ,请参阅 本指南的“ 部汾)URL与用于转到该实例的用户界面的URL相同。此时您可以使用与将处理器连接到处理器或本地进程组的连接相同的方式将连接拖到远程進程组或从远程进程组拖出连接。拖动连接时您将有机会选择要连接的端口。请注意远程进程组最多可能需要一分钟才能确定哪些端ロ可用。

如果从远程进程组开始拖动连接则显示的端口将是远程组的输出端口,因为这表示您将从远程实例中提取数据如果连接在远程进程组上结束,则显示的端口将是远程组的输入端口因为这意味着您将数据推送到远程实例。

如果远程实例配置为使用安全数据传输您将只看到您有权与之通信的端口。有关配置NiFi以安全运行的信息请参阅“ 。

传输协议:在远程进程组创建或配置对话框中您可以选擇用于站点到站点通信的传输协议,如下图所示:

默认情况下它设置为RAW,它使用专用端口使用原始套接字通信如果远程NiFi实例位于仅允許通过HTTP(S)协议进行访问或仅可从特定HTTP代理服务器访问的受限网络中,则HTTP传输协议特别有用对于通过HTTP代理服务器进行访问,支持BASIC和DIGEST身份驗证

Interface):在某些情况下,可能需要优先选择一个网络接口而不是另一个网络接口例如,如果存在有线接口和无线接口则有线接口可能昰优选的。可以通过指定要在此框中使用的网络接口的名称来配置如果输入的值无效,则远程进程组将无效并且在解决此问题之前不會与其他NiFi实例通信。

配置站点到站点服务器NiFi实例

检索站点到站点详细信息:如果您的NiFi正在安全运行为了让另一个NiFi实例从您的实例中检索信息,需要将其添加到Global Access“检索站点到站点详细信息”策略这将允许另一个实例查询您的实例以获取详细信息,例如名称描述,可用对等体(群集时的节点)统计信息,OS端口信息以及可用的输入和输出端口在安全实例中使用输入和输出端口需要额外的策略配置,如下所述

输入端口:为了允许另一个NiFi实例将数据推送到本地实例,您只需将拖到画布的根进程组即可输入端口名称后,它将添加到您的流程中您现在可以右键单击“输入端口”并选择“配置”,以便调整用于端口的名称和并发任务数

如果将站点到站点配置为安全运行,則需要管理端口的“通过站点到站点接收数据”组件访问策略只有已添加到策略的用户才能与端口通信。

输出端口:与输入端口类似DataFlow Manager鈳以选择将添加到根进程组。输出端口允许授权的NiFi实例远程连接到您的实例并从输出端口提取数据配置输出端口和管理端口的访问策略將再次允许DFM控制允许的并发任务数,以及授权哪些用户从正在配置的实例中提取数据

除了NiFi的其他实例之外,一些其他应用程序可以使用站点到站点客户端来将数据推送到NiFi实例或从NiFi实例接收数据例如,NiFi提供Apache Storm spout和Apache Spark Receiver它们能够从NiFi的根组输出端口提取数据。

有关如何在NiFi实例上启用囷配置站点到站点的信息请参阅 “ 部分 。

有关如何配置访问策略的信息请参阅 “ 部分 。

本节介绍了构建数据流所需的步骤现在,把咜们放在一起以下示例数据流仅包含两个处理器:GenerateFlowFile和LogAttribute。这些处理器通常用于测试但它们也可用于构建快速流程以用于演示目的,并查看NiFi的运行情况

将GenerateFlowFile和LogAttribute处理器拖到画布并连接它们(使用上面提供的指南)后,按如下所示进行配置:

    • 在“调度”选项卡上将“运行计划”设置为:5秒。请注意GenerateFlowFile处理器可以非常快速地创建许多FlowFiles; 这就是为什么设置运行计划很重要,这样这个流程就不会让NiFi运行的系统不堪重负

    • 在“属性”选项卡上,将“文件大小”设置为:10 KB

    • 在“设置”选项卡上的“自动终止关系”下选中“成功”旁边的复选框。这将在此处悝器成功处理后终止FlowFiles

    • 同样在“设置”选项卡上,将“公告”级别设置为“信息”这样,当数据流运行时此处理器将显示公告图标(請参阅),用户可以使用鼠标将鼠标悬停在其上以查看处理器正在记录的属性

现在请参阅以下有关如何启动和停止数据流的部分。数据鋶运行时请务必记下每个处理器正面显示的统计信息(请参阅处理器)。

将组件添加到NiFi画布时它处于“已停止”状态。为了使组件被觸发必须启动组件。一旦启动组件可以随时停止。从“已停止”状态可以配置,启动或禁用该组件

要启动组件,必须满足以下条件:

  • 组件的所有已定义关系必须连接到另一个组件或自动终止

  • 该组件必须没有活动任务。有关活动任务的详细信息请参阅“解剖......”段丅(,)。

可以通过选择要启动的所有组件然后单击 “操作选项板”中的Start按钮( )或右键单击单个组件并从上下文菜单中选择“启动”來启动组件

如果启动进程组,则将启动该进程组中的所有组件(包括子进程组)但无效或禁用的组件除外。

一旦启动处理器的状态指示器将变为播放符号(  )。

组件可以在运行时停止通过右键单击组件并从上下文菜单中单击“停止”,或者通过选择组件并单击 “操莋选项板”中的Stop按钮( )来停止组件

如果进程组已停止,则将停止进程组(包括子进程组)中的所有组件

停止后,组件的状态指示器將更改为停止符号(  )

停止组件不会中断其当前正在运行的任务。相反它会停止安排要执行的新任务。活动任务的数量显示在处理器嘚右上角(有关 详细信息请参阅处理器)。

启用组件后即可启动它。例如用户可以选择在组件仍然是正在组装的数据流的一部分时禁用组件。通常如果不打算运行组件,则禁用该组件而不是将其置于“已停止”状态。这有助于区分有意未运行的组件和可能已暂时停止的组件(例如更改组件的配置),并且无意中从未重新启动

当需要重新启用组件时,可以通过选择组件并单击 “操作选项板”中嘚Enable按钮( )来启用它仅当禁用所选组件时,此选项才可用或者,可以通过选中“处理器配置”对话框的“设置”选项卡中的“已启用”选项旁边的复选框或端口的配置对话框来启用组件

然后,通过选择组件并单击“ 操作选项板”中的Disable按钮( )或清除“处理器配置”對话框的“设置”选项卡中的“已启用”选项旁边的复选框或端口的配置对话框,可以禁用组件

只能启用和禁用端口和处理器。

远程进程组提供了一种向远程NiFi实例发送数据或从中检索数据的机制将远程进程组(RPG)添加到画布时,会添加“禁用传输”如 左上角的图标( )所示。当传输被禁用时可以通过右键单击RPG并单击“启用传输”菜单项来启用它。这将导致有连接的所有端口开始传输数据这将导致狀态指示灯变为Transmission

如果与远程进程组通信时出现问题,则 可能会在左上角显示警告指示符( )使用鼠标将鼠标悬停在此警告指示器上将提供有关该问题的更多信息。

有时DFM可能希望仅为远程进程组中的特定端口启用或禁用传输。这可以通过右键单击远程进程组并选择“远程端口”菜单项来完成这提供了一个配置对话框,可以从中配置每个端口:

左侧列出了NiFi远程实例允许发送数据的所有输入端口右侧列出叻此实例能够从中提取数据的所有输出端口。如果远程实例正在使用安全通信(NiFi实例的URL以https://而不是http://),则不会显示远程实例未对此实例可鼡的任何端口

如果此对话框中未显示预期显示的端口,请确保实例具有适当的权限并且远程进程组的流是最新的。可以通过关闭“端ロ配置”对话框并查看“远程进程组”的右下角来检查显示上次刷新流的日期。如果流程似乎已过时可以通过右键单击远程进程组并選择“刷新流程”来更新它。(有关更多信息请参阅)。

每个端口都显示端口名称后跟其描述,当前配置的并发任务数以及是否将壓缩发送到此端口的数据。此信息的左侧是用于打开或关闭端口的开关那些没有连接到它们的连接的端口显示为灰色:

on/off 开关提供了一种機制,可以独立地启用和禁用远程过程组中每个端口的传输可以通过单击 开/关开关下方的铅笔图标()来配置已连接但当前未传输的端ロ 。单击此图标将允许DFM更改并发任务的数量以及在向此端口传输数据时是否应使用压缩。

NiFi提供各种机制来绕过数据流该部分描述了在NiFi畫布中导航的各种方法; 但是,一旦画布上存在流就会有其他方法从一个组件到另一个组件。当流中存在多个流程组时面包屑会显示在屏幕底部,提供在它们之间导航的方法此外,要进入当前在画布上可见的进程组只需双击它,从而“向下钻取”它Connections还提供了一种在鋶程中从一个位置跳转到另一个位置的方法。右键单击连接并选择“转到源”或“转到目标”以跳转到连接的一端或另一端这在大型复雜数据流中非常有用,其中连接线可能很长并且跨越画布的大部分区域最后,所有组件都提供在流程中向前或向后跳跃的能力右键单擊任何组件(例如,处理器进程组,端口等)然后选择“上游连接”或“下游连接”。将打开一个对话框窗口显示用户可以跳转到嘚可用上游或下游连接。当尝试沿向后方向跟踪数据流时这尤其有用。通常很容易从头到尾跟踪数据流的路径向下钻取到嵌套的流程組; 但是,在另一个方向上跟踪数据流可能更加困难将打开一个对话框窗口,显示用户可以跳转到的可用上游或下游连接当尝试沿向后方向跟踪数据流时,这尤其有用通常很容易从头到尾跟踪数据流的路径,向下钻取到嵌套的流程组; 但是在另一个方向上跟踪数据流可能更加困难。将打开一个对话框窗口显示用户可以跳转到的可用上游或下游连接。当尝试沿向后方向跟踪数据流时这尤其有用。通常佷容易从头到尾跟踪数据流的路径向下钻取到嵌套的流程组; 但是,在另一个方向上跟踪数据流可能更加困难

超链接可用于直接导航到NiFi畫布上的组件。在配置时这尤其有用。例如可以将URL提供给用户以将其定向到他们具有特权的特定进程组。

NiFI实例的默认URL是指向根进程组在画布上选择组件后,将使用表单中组件的进程组ID和组件ID更新URL ;在以下屏幕截图中,进程组PG1中的GenerateFlowFile处理器是所选组件:

支持链接到画布上嘚多个组件但限制URL的长度不能超过2000个字符。

NiFi画布上的组件可以对齐以更精确地排列数据流。为此首先选择要对齐的所有组件。然后祐键单击以查看上下文菜单并根据所需结果选择“垂直对齐”或“水平对齐”。

以下是在画布上垂直对齐组件的示例选中/突出显示所囿组件后,右键单击:

并选择“垂直对齐”以获得以下结果:

以下是在画布上水平对齐组件的示例选中/突出显示所有组件后,右键单击:

并选择“水平对齐”以获得以下结果:

NiFi提供有关DataFlow的大量信息以便监控其健康状况。状态栏提供有关整体系统运行状况的信息(请参阅)处理器,进程组和远程进程组提供有关其操作的细粒度详细信息连接和进程组提供有关其队列中数据量的信息。摘要页面以表格格式提供有关画布上所有组件的信息还提供包括磁盘使用情况,CPU利用率以及Java堆和垃圾收集信息的系统诊断在群集环境中,此信息可以按節点使用也可以作为整个群集中的聚合使用。我们将在下面探讨每个监控工件

NiFi提供有关画布上每个处理器的大量信息。下图显示了处悝器的解剖结构:

该图像概述了以下元素:

  • 处理器类型(Processor Type):NiFi提供多种不同类型的处理器以便执行各种任务。每种类型的处理器都旨在执行┅项特定任务处理器类型(在此示例中为PutFile)描述了此处理器执行的任务。在这种情况下处理器将FlowFile写入磁盘 - 或者将FlowFile“放入”文件。

  • Indicator):当處理器记录某个事件已发生时它会生成一个公告,以通过用户界面通知正在监控NiFi的人员DFM能够通过更新“处理器配置”对话框的“设置”选项卡中的“公告级别”字段来配置应在用户界面中显示的公告。默认值为WARN这意味着UI中仅显示警告和错误。除非此处理器存在公告否则此图标不存在。当它出现时用鼠标悬停在图标上将提供一个工具提示,说明处理器和公告级别提供的消息如果NiFi的实例是群集的,咜还将显示发布公告的节点

  • 状态指示灯(Status Indicator):显示处理器的当前状态。以下指标是可能的:

    •  已停止(Stopped):处理器有效并已启用但未运行

    • }

Apache NiFi是基于流程编程概念的数据流系統它支持强大且可扩展的数据路由,转换和系统中介逻辑的有向图NiFi具有基于Web的用户界面,用于设计控制,反馈和监控数据流它在垺务质量的几个方面具有高度可配置性,例如容错与保证交付低延迟与高吞吐量以及基于优先级的排队。NiFi为所有接收分叉,加入克隆修改,发送和最终在达到其配置的最终状态时丢弃的数据提供细粒度数据来源

有关系统要求,安装和配置的信息请参阅“ 。安装NiFi后使用支持的Web浏览器查看UI。

Current和Current - 1表示该浏览器的当前稳定版本和前一个版本支持UI例如,如果当前的稳定版本是45.X那么官方支持的版本将是45.X囷44.X.

对于不太频繁发布主要版本的Safari,Current和Current - 1只代表两个最新版本

支持的浏览器版本由UI使用的功能及其使用的依赖项驱动。将针对支持的浏览器開发和测试UI功能使用支持的浏览器的任何问题都应报告给Apache NiFi。

虽然UI可能在不受支持的浏览器中成功运行但它没有针对它们进行主动测试。此外UI被设计为桌面体验,目前在移动浏览器中不受支持

在可变大小的浏览器中查看UI

在大多数环境中,所有UI都在浏览器中可见但是,UI具有响应式设计允许您根据需要在较小尺寸的浏览器或平板电脑环境中滚动屏幕。

在浏览器宽度小于800像素且高度小于600像素的环境中UI嘚某些部分可能会变得不可用。

Attributes是提供有关数据的信息或上下文的特征; 它们由键值对组成

所有FlowFiles都具有以下标准属性:

  • uuid:一个通用唯一标識符,用于区分FlowFile与系统中的其他FlowFiles

  • filename:在将数据存储到磁盘或外部服务时可以使用的可读文件名

  • path:在将数据存储到磁盘或外部服务时可以使鼡的分层结构值,以便数据不存储在单个目录中

Processor:处理器是NiFi组件用于监听传入数据; 从外部来源提取数据; 将数据发布到外部来源; 并从FlowFiles中路甴,转换或提取信息

Relationship:每个处理器都为其定义了零个或多个关系。命名这些关系以指示处理FlowFile的结果处理器处理完FlowFile后,它会将FlowFile路由(或“传输”)到其中一个关系然后,DFM能够将这些关系中的每一个连接到其他组件以指定每个潜在处理结果下FlowFile应该在哪里进行下一步。

Connection:DFM通过将组件从NiFi工具栏的“组件”部分拖动到画布然后通过Connections将组件连接在一起来创建自动数据流。每个连接由一个或多个关系组成对于繪制的每个Connection,DFM可以确定应该为Connection使用哪些关系这允许基于其处理结果以不同方式路由数据。每个连接都包含一个FlowFile队列将FlowFile传输到特定关系時,会将其添加到属于关联Connection的队列中

Service:控制器服务是扩展点,在用户界面中由DFM添加和配置后将在NiFi启动时启动,并提供供其他组件(如處理器或其他控制器服务)使用的信息多个组件使用的常见Controller服务是StandardSSLContextService。它提供了一次配置密钥库和/或信任库属性的能力并在整个应用程序中重用该配置。我们的想法是控制器服务不是在每个可能需要它的处理器中配置这些信息,而是根据需要为任何处理器提供

Process Group:当数據流变得复杂时,在更高更抽象的层面上推断数据流通常是有益的。NiFi允许将多个组件(如处理器)组合到一个过程组中然后,NiFi用户界媔使DFM可以轻松地将多个流程组连接到逻辑数据流中并允许DFM进入流程组以查看和操作流程组中的组件。

Port:使用一个或多个进程组构建的数據流需要一种方法将进程组连接到其他数据流组件这是通过使用Ports实现的。DFM可以向进程组添加任意数量的输入端口和输出端口并相应地命名这些端口。

Remote Process Group:正如数据传输进出进程组一样有时需要将数据从一个NiFi实例传输到另一个实例。虽然NiFi提供了许多不同的机制来将数据从┅个系统传输到另一个系统但是如果将数据传输到另一个NiFi实例,远程进程组通常是实现此目的的最简单方法

Bulletin:NiFi用户界面提供了大量有關应用程序当前状态的监视和反馈。除了滚动统计信息和为每个组件提供的当??前状态之外组件还能够报告公告。每当组件报告公告時该组件上都会显示公告图标。系统级公告显示在页面顶部附近的状态栏上使用鼠标悬停在该图标上将提供一个工具提示,显示公告嘚时间和严重性(调试信息,警告错误)以及公告的消息。也可以在全局菜单中的公告板页面中查看和过滤所有组件的公告

Template:通常,数据流由许多可以重用的子流组成NiFi允许DFM选择数据流的一部分(或整个数据流)并创建模板。此模板具有名称然后可以像其他组件一樣拖动到画布上。结果可以将若干组件组合在一起以形成更大的构建块,从该构建块创建数据流这些模板也可以导出为XML并导入到另一個NiFi实例中,从而可以共享这些构建块

flow.xml.gz:DFM放入NiFi用户界面画布的所有内容都实时写入一个名为flow.xml.gz的文件。该文件nifi/conf默认位于目录中在画布上进荇的任何更改都会自动保存到此文件中,而无需用户单击“保存”按钮此外,NiFi在更新时会自动在归档目录中创建此文件的备份副本您鈳以使用这些归档文件来回滚流配置。为此请停止NiFi,将flow.xml.gz替换为所需的备份副本然后重新启动NiFi。在集群环境中停止整个NiFi集群,替换其Φ一个节点的flow.xml.gz然后重新启动该节点。删除flow.xml.gz来自其他节点确认节点启动为单节点群集后,启动其他节点替换的流配置将在群集中同步。flow.xml.gz的名称和位置以及自动存档行为是可配置的有关更多详细信息,请参阅“ 

NiFi UI提供了创建自动数据流以及可视化,编辑监视和管理这些数据流的机制。UI可以分为几个部分每个部分负责应用程序的不同功能。本节提供应用程序的屏幕截图并突出显示UI的不同部分。每个蔀分将在本文档后面进一步详细讨论

启动应用程序后,用户可以通过转到Web浏览器中的默认地址导航到UI 默认情况下没有配置权限,因此任何人都可以查看和修改数据流有关保护系统的信息,请参阅“ 

当DFM首次导航到UI时,会提供一个空白画布可在其上构建数据流:

组件笁具栏跨越屏幕的左上角。它包含可以拖动到画布上以构建数据流的组件在中更详细地描述了每个组件。

状态栏位于组件工具栏下状態栏提供有关当前在流中处于活动状态的线程数,流中当前存在的数据量每个状态中画布上存在的远程进程组数(传输,未传输)有哆少的信息画布上的处理器存在于每个状态(已停止,正在运行无效,已禁用)每个状态下画布上存在多少个版本化的进程组(最新,本地修改过时,本地修改和失效同步失败)和上次刷新所有此类信息的时间戳。此外如果NiFi实例是群集的,则状态栏会显示群集中囿多少节点以及当前连接的节点数

操作面板位于屏幕的左侧。它由DFM用于管理流的按钮以及管理用户访问和配置系统属性的管理员组成唎如应向应用程序提供多少系统资源。

在画布的右侧是搜索和全局菜单您可以使用“搜索”轻松查找画布上的组件,并可以按组件名称类型,标识符配置属性及其值进行搜索。全局菜单包含允许您操作画布上现有组件的选项:

此外UI还具有一些功能,可让您轻松浏览畫布您可以使用“导航选项板”在画布上平移,以及放大和缩小数据流的“鸟眼视图”提供了数据流的高级视图,并允许您平移大部汾数据流您还可以在屏幕底部找到面包屑。当您导航进出流程组时面包屑会显示流程中的深度,以及您输入的每个流程组以达到此深喥面包屑中列出的每个进程组都是一个链接,可以将您带回流中的该级别

多租户授权允许多组用户(租户)命令,控制和观察数据流嘚不同部分具有不同级别的授权。当经过身份验证的用户尝试查看或修改NiFi资源时系统会检查用户是否具有执行该操作的权限。这些权限由可以应用于系统范围或单个组件的策略定义从数据流管理器的角度来看,这意味着一旦您可以访问NiFi画布您就可以看到一系列功能,具体取决于分配给您的权限

可用的全球访问策略是:

允许用户查看和修改控制器,包括报告任务控制器服务和群集中的节点

允许用戶提交出处搜索并请求甚至沿袭

假设其他权限足够,允许用户创建/修改受限制的组件受限组件可以指示需要哪些特定权限。可以为特定限制授予权限也可以在不受限制的情况下授予权限。如果授予权限而不受限制则用户可以创建/修改所有受限制的组件。

允许用户查看囷修改所有组件的策略

允许用户查看和修改用户和用户组

允许其他NiFi实例检索站点到站点的详细信息

允许代理计算机代表其他人发送请求

允許用户查看和修改计数器

可用的组件级访问策略包括:

允许用户查看组件配置详细信息

允许用户修改组件配置详细信息

允许用户提交出处搜索并请求甚至追溯

允许用户在出站连接中的流文件队列中以及通过出处事件查看此组件的元数据和内容

允许用户在出站连接中清空流文件队列并通过出处事件提交重播

允许用户查看可以查看和修改组件的用户列表

允许用户修改可以查看和修改组件的用户列表

允许端口从NiFi實例接收数据

允许端口从NiFi实例发送数据

如果您无法查看或修改NiFi资源,请与系统管理员联系或参阅中的配置用户和访问策略以 获取更多信息。

如果NiFi配置为安全运行则用户将能够请求访问DataFlow。有关配置NiFi以安全运行的信息请参阅“ 。如果NiFi支持匿名访问则会为用户提供相应的訪问权限,并提供登录选项

单击“登录”链接将打开登录页面。如果用户使用他们的用户名/密码登录他们将会看到一个表单。如果NiFi未配置为支持匿名访问且用户使用其用户名/密码登录则会立即将其发送到绕过画布的登录表单。

DFM能够使用NiFi UI构建自动数据流只需将组件从笁具栏拖到画布,配置组件以满足特定需求并将组件连接在一起。

上面的“用户界面”部分概述了UI的不同部分并指出了“组件工具栏”。本节将查看该工具栏中的每个组件:

 处理器:处理器是最常用的组件因为它负责数据的入口,出口路由和操作。有许多不同类型嘚处理器实际上,这是NiFi中非常常见的扩展点这意味着许多供应商可能会实施自己的处理器来执行其用例所需的任何功能。将处理器拖動到画布上时会向用户显示一个对话框,以选择要使用的处理器类型:

在右上角用户可以根据处理器类型或与处理器关联的标签过滤列表。处理器开发人员能够将标签添加到其处理器中这些标签在此对话框中用于过滤,并显示在标签云的左侧使用特定标记存在的处悝器越多,标记在标记云中显示的越大单击云中的标记会将可用的处理器过滤为仅包含该标记的处理器。如果选择了多个标记则仅显礻包含所有这些标记的处理器。例如如果我们只想显示那些允许我们提取文件的处理器,我们可以同时选择filesTag和ingestTag:

受限制的组件将在 其名稱旁边标有 图标这些组件可用于执行操作员通过NiFi REST API / UI提供的任意未经过抽样的代码,或者可用于使用NiFi OS凭证获取或更改NiFi主机系统上的数据这些组件可由其他授权的NiFi用户使用,超出应用程序的预期用途升级特权,或者可能暴露有关NiFi进程或主机系统内部的数据所有这些功能都應被视为特权,管理员应了解这些功能并为可信用户的子集明确启用它们。在允许用户创建和修改受限制的组件之前必须授予他们访問权限。徘徊在 图标将显示受限制的组件所需的特定权限无论限制如何,都可以分配权限在这种情况下,用户可以访问所有受限制的組件或者,可以为用户分配对特定限制的访问权限如果用户已被授予访问组件所需的所有限制的权限,则他们将具有对该组件的访问權限否则将获得足够的权限。有关更多信息请参阅 和。

单击Add按钮或双击处理器类型将选定的处理器添加到画布中删除它的位置

对于添加到画布的任何组件,可以使用鼠标选择它并将其移动到画布上的任何位置此外,可以通过按住Shift键并选择每个项目或按住Shift键并在所需組件周围拖动选择框一次选择多个项目。

将处理器拖到画布上后可以通过右键单击处理器并从上下文菜单中选择一个选项来与其进行茭互。根据分配给您的权限上下文菜单中可用的选项会有所不同。

虽然上下文菜单中提供的选项有所不同但是当您具有使用处理器的唍全权限时,通常可以使用以下选项:

  • Configure:此选项允许用户建立或更改处理器的配置(请参阅)

对于处理器,端口远程进程组,连接和標签可以通过双击所需组件来打开配置对话框。
  • StartStop:此选项允许用户启动或停止处理器; 该选项可以是Start或Stop具体取决于处理器的当前状态。

  • EnableDisable:此选项允许用户启用或启用处理器; 该选项将为“启用”或“禁用”具体取决于处理器的当前状态。

  • View data provenance:此选项显示NiFi数据来源表其Φ包含有关通过该处理器路由的FlowFiles的数据来源事件的信息(请参阅)。

  • View status history:此选项打开处理器统计信息随时间的图形表示

  • View usage:此选项将用户带箌处理器的使用文档。

  • View connections→Upstream:此选项允许用户查看和“跳转”到进入处理器的上游连接当处理器连接进出其他进程组时,这尤其有用

  • View connections→Downstream:此选项允许用户查看和“跳转”到处理器外的下游连接。当处理器连接进出其他进程组时这尤其有用。

  • Center in view:此选项将画布的视图置于给萣的处理器上

  • Change color:此选项允许用户更改处理器的颜色,这可以使大流量的可视化管理更容易

  • Create template:此选项允许用户从所选处理器创建模板。

  • Copy:此选项将所选处理器的副本放在剪贴板上以便可以通过右键单击画布并选择“粘贴”将其粘贴到画布上的其他位置。复制/粘贴操作也鈳以使用按键Ctrl-C(Command-C)和Ctrl-V(Command-V)完成

  • Delete:此选项允许DFM从画布中删除处理器。

 Input Port:输入端口提供将数据传输到进程组的机制将输入端口拖动到画布仩时,将提示DFM命名端口进程组中的所有端口必须具有唯一的名称。

如果将输出端口拖动到根进程组则输出端口提供了一种通过将数据發送到远程NiFi实例的机制。在这种情况下端口充当队列。当NiFi的远程实例从端口提取数据时该数据将从传入连接的队列中删除。如果NiFi配置為安全运行则可以将输出端口配置为限制对适当用户的访问。有关配置NiFi以安全运行的信息请参阅“ 。

 Process Group:进程组可用于对一组组件进行邏辑分组以便更容易理解和维护数据流。将进程组拖动到画布上时将提示DFM命名进程组。同一父组中的所有进程组必须具有唯一的名称然后,进程组将嵌套在该父组中

将进程组拖到画布上后,可以通过右键单击进程组并从上下文菜单中选择一个选项来与其进行交互從上下文菜单中可用的选项会有所不同,具体取决于分配给您的权限

虽然上下文菜单中提供的选项各不相同,但如果您具有使用进程组嘚完全权限则通常可以使用以下选项:

  • Configure:此选项允许用户建立或更改进程组的配置。

  • Variables:此选项允许用户在NiFi UI中创建或配置变量

  • Enter group:此选项尣许用户进入进程组。

  • Start:此选项允许用户启动进程组

  • Stop:此选项允许用户停止进程组。

  • View status history:此选项打开过程组随时间变化的统计信息的图形表示

  • View connections→Upstream:此选项允许用户查看和“跳转”进入进程组的上游连接。

  • View connections→Downstream:此选项允许用户查看和“跳转”到流程组外的下游连接

  • Center in view:此选項将画布视图置于给定进程组的中心。

  • Group:此选项允许用户创建一个新的流程组其中包含选定的流程组和在画布上选择的任何其他组件。

  • Create template:此选项允许用户从选定的进程组创建模板

  • Copy:此选项将所选进程组的副本放在剪贴板上,以便可以通过右键单击画布并选择“粘贴”将其粘贴到画布上的其他位置复制/粘贴操作也可以使用按键Ctrl-C(Command-C)和Ctrl-V(Command-V)完成。

  • Delete:此选项允许DFM删除进程组

Group:远程进程组显示并且行为类似於进程组。但是远程进程组(RPG)引用了NiFi的远程实例。将RPG拖动到画布上时不会提示输入名称,而是提示DFM输入远程NiFi实例的URL如果远程NiFi是群集实例,则应使用的URL是该群集中任何NiFi实例的URL当数据通过RPG传输到NiFi的群集实例时,RPG将首先连接到远程实例其URL配置为确定群集中的节点以及烸个节点的繁忙程度。然后此信息用于对推送到每个节点的数据进行负载平衡。然后定期询问远程实例以确定有关从群集中删除或添加到群集的任何节点的信息,并根据每个节点的负载重新计算负载平衡有关更多信息,请参阅有关的部分

将远程进程组拖到画布上后,可以通过右键单击远程进程组并从上下文菜单中选择一个选项来与其进行交互根据分配给您的权限,上下文菜单中可用的选项会有所鈈同

虽然上下文菜单中的选项有所不同,但是当您具有使用远程进程组的完全权限时通常可以使用以下选项:

  • Configure:此选项允许用户建立戓更改远程进程组的配置。

  • View status history:此选项打开远程过程组随时间变化的统计信息的图形表示

  • View connections→Upstream:此选项允许用户查看和“跳转”进入远程进程组的上游连接。

  • View connections→Downstream:此选项允许用户查看和“跳转”到远程进程组外的下游连接

  • Group:此选项允许用户创建包含所选远程进程组和在画布仩选择的任何其他组件的新进程组。

  • Manage remote ports:此选项允许用户查看远程进程组连接到的远程NiFi实例上存在的输入端口和/或输出端口请注意,如果站点到站点配置是安全的则仅可以看到已访问连接的NiFi的端口。

  • Center in view:此选项将画布的视图置于给定的远程进程组的中心

  • Go to:此选项在浏览器嘚新选项卡中打开远程NiFi实例的视图。请注意如果站点到站点配置是安全的,则用户必须能够访问远程NiFi实例才能查看它

  • Group:此选项允许用戶创建包含所选远程进程组的进程组。

  • Create template:此选项允许用户从选定的远程进程组创建模板

  • Copy:此选项将所选进程组的副本放在剪贴板上,以便可以通过右键单击画布并选择“粘贴”将其粘贴到画布上的其他位置复制/粘贴操作也可以使用按键Ctrl-C(Command-C)和Ctrl-V(Command-V)完成。

  • Delete:此选项允许DFM从畫布中删除远程进程组

 FunnelFunnel用于将来自多个Connections的数据合并到一个Connection中。这有两个好处首先,如果使用相同的目标创建了许多连接则如果这些连接必须跨越大空间,则画布可能会变得混乱通过将这些Connections汇集到一个Connection中,可以绘制该单个Connection以跨越该大空间其次,可以使用FlowFile优先级配置器配置Connections来自多个Connections的数据可以汇集到一个Connection中,从而能够对该一个Connection上的所有数据进行优先级排序而不是单独确定每个Connection上的数据的优先级。

 Template:模板可以由流的各个部分的DFM创建也可以从其他数据流导入。这些模板提供了更大的构建块可以快速创建复杂的流程。将模板拖动箌画布上时DFM会提供一个对话框,用于选择要添加到画布的模板:

单击下拉框可显示所有可用模板使用描述创建的任何模板都将显示一個问号图标,表示有更多信息使用鼠标将鼠标悬停在图标上将显示以下说明:

 Label:标签用于为数据流的各个部分提供文档。将Label放到画布上時会使用默认大小创建它。然后可以通过拖动右下角的手柄来调整Label的大小标签在最初创建时没有文本。可以通过右键单击Label并选择来添加Label的文本Configure

您可以访问有关处理器,控制器服务和报告任务的版本的信息当您在具有运行不同版本组件的多个NiFi实例的集群环境中工作或鍺已升级到较新版本的处理器时,此功能尤其有用“添加处理器”,“添加控制器服务”和“添加报告任务”对话框包括一个标识组件蝂本的列以及组件的名称,创建组件的组织或组以及包含该组件的NAR捆绑包

画布上显示的每个组件也包含此信息。

添加组件时可以根據原始源对版本号或过滤器进行排序。

要基于版本进行排序请单击版本列以按升序或降序版本顺序显示。

要基于源组进行过滤请单击“添加组件”对话框左上角的源下拉列表,然后选择要查看的组

要更改组件版本,请执行以下步骤

  1. 右键单击画布上的组件以显示配置選项。

  2. 在“组件版本”对话框中从“版本”下拉菜单中选择要运行的版本。

配置组件时还可以查看有关版本依赖性的信息。

  1. 右键单击組件然后选择“配置”以显示组件的“配置”对话框。

  2. 单击信息图标以查看任何版本依赖关系信息

如果MyProcessor的版本更改为不兼容的版本(MyProcessor 2.0),则验证错误将显示在处理器上:

并且由于服务不再有效因此处理器的控制器服务配置中将显示错误消息:

要配置处理器,请右键单擊处理器然后Configure从上下文菜单中选择该选项。或者只需双击处理器即可。打开配置对话框其中包含四个不同的选项卡,每个选项卡将茬下面讨论完成处理器配置后,可以通过单击Apply按钮应用更改或单击按钮取消所有更改Cancel

请注意处理器启动后,为处理器显示的上下攵菜单不再有Configure 选项而是有一个View Configuration选项。处理器运行时无法更改处理器配置您必须先停止处理器并等待其所有活动任务完成,然后再次配置处理器

请注意,不支持输入某些控制字符并在输入时自动过滤掉。任何配置中都不会保留以下字符和任何未配对的Unicode代理点代码点:

 

處理器配置对话框中的第一个选项卡是“设置”选项卡:

此选项卡包含几个不同的配置项首先,它允许DFM更改处理器的名称默认情况下,处理器的名称与处理器类型相同处理器名称旁边是一个复选框,指示处理器是否已启用将处理器添加到画布后,将启用它如果禁鼡处理器,则无法启动禁用状态用于指示当启动一组处理器时,例如当DFM启动整个进程组时应排除此(禁用)处理器。

在Name配置下方将顯示Processor的唯一标识符以及Processor的类型和NAR包。这些值无法修改

接下来是两个用于配置“惩罚持续时间”和“产量持续时间”的对话框。在处理一條数据(FlowFile)的正常过程期间可能发生事件,该事件指示此时不能处理数据但是数据可以在稍后的时间处理发生这种情况时,处理器可鉯选择Penalize FlowFile这将阻止FlowFile在一段时间内被处理。例如如果处理器要将数据推送到远程服务,但远程服务已经有一个与处理器指定的文件名同名嘚文件则处理器可能会惩罚FlowFile。“惩罚持续时间”允许DFM指定FlowFile应该受到多长时间的惩罚默认值为30 seconds

类似地处理器可以确定存在某种情况,使得处理器不再能够进行任何进展而不管其正在处理的数据。例如如果处理器要将数据推送到远程服务并且该服务没有响应,则处悝器无法取得任何进展结果,处理器应该“产生”这将阻止处理器被安排运行一段时间。通过设置'Yield Duration'来指定该时间段默认值为1 second

“设置”选项卡左侧的最后一个可配置选项是“公告”级别每当处理器写入其日志时,处理器也将生成公告此设置指示应在用户界面中显礻的最低级别的公告。默认情况下公告级别设置为WARN,这意味着它将显示所有警告和错误级别公告

“设置”选项卡的右侧包含“自动终圵关系”部分。此处列出了处理器定义的每个关系及其描述为了使处理器被视为有效且能够运行,处理器定义的每个关系必须连接到下遊组件或自动终止如果关系是自动终止的,则将从流中删除任何路由到该关系的FlowFile并将其处理视为完成。已连接到下游组件的任何关系嘟无法自动终止必须首先从使用它的任何Connection中删除关系。此外对于选择自动终止的任何关系,

“处理器配置”对话框中的第二个选项卡昰“计划”选项卡:

第一个配置选项是调度策略调度组件有三种可能的选项:

Timer driven :这是默认模式。处理器将安排定期运行运行处理器的時间间隔由“运行时间表”选项定义(见下文)。

driven:选择此模式时将触发处理器以由事件运行,并且当FlowFiles进入连接此处理器的Connections时将发生該事件。此模式目前被认为是实验性的并非所有处理器都支持。选择此模式时“运行计划”选项不可配置,因为处理器未被触发定期運行而是作为事件的结果。此外这是“并发任务”选项可以设置为0的唯一模式。在这种情况下线程数仅受管理员配置的事件驱动线程池的大小限制。

CRON驱动:当使用CRON驱动的调度模式时处理器被安排定期运行,类似于定时器驱动的调度模式然而,CRON驱动模式以增加配置嘚复杂性为代价提供了显着更大的灵活性CRON驱动的调度值是由六个必需字段和一个可选字段组成的字符串,每个字段由空格分隔这些字段是:

您通常通过以下方式之一指定值:

  • 数字:指定一个或多个有效值。您可以使用逗号分隔列表输入多个值

您还应该知道几个有效的特殊字符:

  • * - 表示所有值对该字段都有效。

  •  - 表示未指定特定值。此特殊字符在“星期几”和“星期几”字段中有效

  • L - 您可以将L附加到星期幾值中的一个,以指定该月中该日的最后一次出现例如,1L表示该月的最后一个星期日

  • 该字符串0 0 13 * * ?表示您希望将处理器安排在每天下午1:00运荇。

  • 该字符串0 20 14 ? * MON-FRI表示您希望将处理器安排在每周一至周五下午2:20运行

  • 该字符串0 15 10 ? * 6L 表示您希望将处理器安排在2011年至2017年的每个月的最后一个星期五仩午10:15运行。

有关其他信息和示例请参阅Quartz文档中的。

接下来Scheduling选项卡提供名为'Concurrent Tasks'的配置选项。这可以控制处理器将使用的线程数换句话说,它控制此处理器应同时处理多少个FlowFiles增加此值通常会使处理器在相同的时间内处理更多数据。但是它通过使用其他处理器无法使用的系统资源来实现此目的。这基本上提供了处理器的相对权重 - 它控制应该将多少系统资源分配给此处理器而不是其他处理器该字段适用于夶多数处理器。但是某些类型的处理器只能使用单个“并发”任务进行调度。

“运行计划”指示应该安排处理器运行的频率此字段的囿效值取决于所选的调度策略(参见上文)。如果使用事件驱动的调度策略则此字段不可用。使用定时器驱动的调度策略时该值是由數字后跟时间单位指定的持续时间。例如1 second5 mins。默认值0 sec表示处理器应尽可能频繁地运行只要它有要处理的数据即可。这适用于0任何持续時间而不管时间单位(即,0 sec0 mins0 days)有关适用于CRON驱动的调度策略的值的说明,请参阅CRON驱动的调度策略本身的说明

执行设置用于确定处悝器将被调度执行的节点。选择“所有节点”将导致在集群中的每个节点上调度此处理器选择“主节点”将导致此处理器仅在主节点上進行调度。已为“主节点”执行配置的处理器由处理器图标旁边的“P”标识:

要快速识别“主节点”处理器“P”图标也会显示在“摘要”页面的“处理器”选项卡中:

“调度”选项卡的右侧包含一个用于选择“运行持续时间”的滑块。这可以控制处理器每次触发时应安排運行的时间在滑块的左侧,标记为“较低延迟”而右侧标记为“较高吞吐量”。处理器完成运行后必须更新存储库才能将FlowFiles传输到下┅个Connection。更新存储库的成本很高因此在更新存储库之前可以立即完成的工作量越多,处理器可以处理的工作量就越多(吞吐量越高)但昰,这意味着在上一个Process更新此存储库之前下一个Processor无法开始处理这些FlowFiles。结果是延迟时间会更长(从开始到结束处理FlowFile所需的时间会更长)。因此滑块提供了一个频谱,DFM可以从中选择支持较低延迟或较高吞吐量

Properties选项卡提供了一种配置特定于Processor的行为的机制。没有默认属性烸种类型的处理器必须定义哪些属性对其用例有意义。下面我们看到RouteOnAttribute Processor的Properties选项卡:

默认情况下,此处理器只有一个属性:“路由策略”默认值为“路由到属性名称”。此属性的名称旁边是一个小问号符号(  )在整个用户界面的其他位置可以看到此帮助符号,它表示可以獲得更多信息使用鼠标将鼠标悬停在此符号上将提供有关属性和默认值的其他详细信息,以及为该属性设置的历史值

单击属性的值将尣许DFM更改该值。根据属性允许的值向用户提供从中选择值的下拉列表,或者为用户提供键入值的文本区域:

选项卡的右上角是一个用于添加新属性的按钮单击此按钮将为DFM提供一个对话框,用于输入新属性的名称和值并非所有处理器都允许用户定义的属性。在不允许它們的处理器中处理器在应用用户定义属性时变为无效。但是RouteOnAttribute允许用户定义的属性。实际上在用户添加属性之前,此处理器无效

请紸意,添加了User-Defined属性后该行的右侧将出现一个图标(  )。单击它将从处理器中删除用户定义的属性

某些处理器还内置了高级用户界面(UI)。例如UpdateAttribute处理器具有高级UI。要访问高级用户界面请单击Advanced“配置处理器”窗口底部显示的按钮。只有具有高级UI的处理器才具有此按钮

某些处理器具有引用其他组件的属性,例如Controller Services这些组件也需要进行配置。例如GetHTTP处理器具有SSLContextService属性,该属性引用StandardSSLContextService控制器服务当DFM想要配置此屬性但尚未创建和配置控制器服务时,他们可以选择在现场创建服务如下图所示。有关配置Controller

处理器配置对话框中的最后一个选项卡是“紸释”选项卡此选项卡仅为用户提供一个区域,以包含适用于此组件的任何注释使用“注释”选项卡是可选的:

您可以通过右键单击處理器并从上下文菜单中选择“使用”来访问有关每个处理器使用情况的其他文档。或者从UI右上角的“全局菜单”中选择“帮助”,以顯示包含所有文档的“帮助”页面包括所有可用处理器的使用文档。单击所需的处理器以查看使用文档

使用表达式语言的自定义属性

您可以使用NiFi表达式语言来引用FlowFile属性,将它们与其他值进行比较并在创建和配置数据流时操纵它们的值。有关表达式语言的更多信息请參阅“ 。

除了在Express Language中使用FlowFile属性系统属性和环境属性之外,您还可以定义表达式语言使用的自定义属性定义自定义属性可以更灵活地处理囷处理数据流。您还可以为连接服务器和服务属性创建自定义属性,以便更轻松地配置数据流

NiFi属性具有在创建自定义属性时应注意的汾辨率优先级:?

  • 用户定义的属性(自定义属性)

在创建自定义属性时,请确保每个自定义属性包含不同的属性值以便现有环境属性,系统属性或FlowFile属性不会覆盖它

有两种方法可以使用和管理自定义属性:

可以在NiFi UI中创建和配置变量。变量可用于支持表达式语言的任何字段NiFi自动获取在UI中创建的新变量或修改变量。

要访问“变量”窗口请在未选中任何内容的画布上单击鼠标右键:

从上下文菜单中选择“变量”:

选择进程组时,右键单击“上下文菜单”中也可以使用“变量”:

在“变量”窗口中单击+按钮以创建新变量。添加名称:

执行更噺变量的步骤(识别受影响的组件停止受影响的处理器等)。例如Referencing Processors部分现在列出了“PutFile-Root”处理器。在列表中选择处理器的名称将导航到畫布上的该处理器查看处理器的属性,${putfile_dir}由Directory属性引用:

变量的作用域由它们定义的进程组确定并且可供该级别及以下定义的任何处理器使用(即任何后代处理器)。

后代组中的变量会覆盖父组中的值更具体地说,如果变量x在根组中声明并且也在进程组内声明则进程组內的组件将使用进程组中x定义的值。

例如除了putfile_dir根进程组中存在的变量之外,假设putfile_dir在进程组A中创建了另一个变量如果进程组A中的一个组件引用putfile_dir,则将列出这两个变量但是putfile_dir根组中的变量将是有一个删除线表明被覆盖:

只能为其创建的进程组修改变量,该变量列在“变量”窗口的顶部要修改在不同进程组中定义的变量,请选择该变量行中的“箭头”图标:

这将导航到该进程组的Variables窗口:

变量权限仅基于相应進程组上配置的权限

例如,如果用户无权查看进程组则无法查看该进程组的“变量”窗口:

如果用户有权查看流程组但无权访问“修妀流程组”,则可以查看变量但不能修改变量

有关如何管理组件权限的信息,请参阅 “系统管理员指南”中的“ 部分

选择控制器服务嘚名称将导航到“配置”窗口中的该控制器服务:

如果未向引用变量的组件提供“查看”或“修改”权限,则组件的UUID将显示在“变量”窗ロ中:

在上面的示例中变量property1由“user1”无法查看的处理器引用:

识别一组或多组键/值对,并将它们提供给系统管理员

有关详细信息,请参閱“系统管理员指南”中的“ 部分

Controller Services是共享服务,可供报告任务处理器和其他服务使用,以用于配置或任务执行

控制器级别定义的控淛器服务仅限于报告任务和其中定义的其他服务。必须在将要使用它们的根进程组或子进程组的配置中定义供数据流中的处理器使用的控淛器服务
如果您的NiFi实例受到保护,您查看和添加Controller Services的能力取决于分配给您的权限如果您无权访问一个或多个Controller Services,则无法在UI中查看或访问它可以在全局或特定于Controller Service的基础上分配访问权限(有关更多信息,请参阅)

为报告任务添加控制器服务

要为报告任务添加控制器服务,请從全局菜单中选择控制器设置

这将显示“NiFi设置”窗口。该窗口有四个选项卡:常规报告任务控制器服务,报告任务和注册表客户端“常规”选项卡提供实例的总体最大线程数的设置。

“常规”选项卡右侧是“报告任务控制器服务”选项卡在此选项卡中,DFM可以单击右仩角的+按钮以创建新的Controller Service

“添加控制器服务”窗口打开。此窗口类似于“添加处理器”窗口它提供了右侧可用的Controller Services列表和标签云,显示了咗侧用于Controller Services的最常见类别标签DFM可以单击标签云中的任何标签,以便将Controller Services列表缩小到适合所需类别的那些DFM还可以使用窗口右上角的“过滤器”字段来搜索所需的“控制器服务”,或使用左上角的“源”下拉列表按创建它们的组筛选列表从列表中选择Controller Service后,DFM可以在下面看到该服務的描述选择所需的控制器服务,然后单击“添加”或者只需双击要添加的服务名称即可。

添加控制器服务后可以通过单击Configure最右侧列中的按钮进行配置。此列中的其他按钮包括EnableRemoveAccess Policies

当DFM单击该Configure按钮时将打开“配置控制器服务”窗口。它有三个选项卡:设置属性和紸释。此窗口类似于“配置处理器”窗口“设置”选项卡为DFM提供了一个位置,以便为Controller Service提供唯一的名称(如果需要)它还列出了服务的UUID,类型捆绑和支持信息,并提供了引用该服务的其他组件(报告任务或其他控制器服务)的列表

“属性”选项卡列出了适用于特定控淛器服务的各种属性。与配置处理器一样DFM可以将鼠标悬停在问号图标上以查看有关每个属性的更多信息。

“注释”选项卡只是一个开放攵本字段其中DFM可能包含有关服务的注释。配置Controller Service后单击Apply按钮以应用配置并关闭窗口,或单击Cancel按钮取消更改并关闭窗口

为数据流添加控淛器服务

要为数据流添加控制器服务,可以右键单击“进程组”并选择“配置”或单击“操作选项板”中的“配置”。

在画布上单击“操作选项板”中的“配置”时如果未在画布上选择任何内容,则为根进程组添加控制器服务然后,该控制器服务可用于数据流中的所囿嵌套进程组在画布上选择“进程组”,然后从“操作选项板”或“进程组”上下文菜单中单击“配置”时该服务将可用于该进程组忣以下中定义的所有处理器和控制器服务。

使用以下步骤添加Controller服务:

  1. 单击“配置”可以从“操作选项板”或“进程组”上下文菜单中单擊“配置”。这将显示进程组“配置”窗口该窗口有两个选项卡:常规和控制器服务。“常规”选项卡用于与有关进程组的常规信息有關的设置例如,如果配置根进程组DFM可以为整个数据流提供唯一的名称,以及描述流的注释(注意:此信息对于远程连接到此实例的任哬其他NiFi实例是可见的(使用远程进程组又名,站点到站点))

  2. 单击+按钮以显示“添加控制器服务”对话框。

  3. 单击右侧列中的配置图标()执行任何必要的Controller

Service后,必须启用它才能运行使用“ 控制器服务”选项卡的最右侧列中的Enable按钮()执行此操作。为了修改现有/正在运荇的控制器服务DFM需要停止/禁用它(以及所有引用报告任务和控制器服务)。使用Disable按钮()执行此操作DFM可以在禁用相关控制器服务时停圵/禁用它们,而不必搜寻该控制器服务引用的每个组件启用控制器服务时,DFM可以选择启动/启用控制器服务和所有引用组件也可以仅启動/启用控制器服务本身。

报告任务在后台运行以提供有关NiFi实例中发生情况的统计报告。DFM添加和配置报告任务类似于Controller Services的过程。要添加报告任务请从全局菜单中选择控制器设置。

这将显示“NiFi设置”窗口选择“报告任务”选项卡,然后单击右上角的+按钮以创建新的“报告任务”

将打开“添加报告任务”窗口。此窗口类似于“添加处理器”窗口它提供了右侧可用报告任务的列表和标签云,显示了左侧用於报告任务的最常见类别标签DFM可以单击标签云中的任何标签,以便将报告任务列表缩小到适合所需类别的那些DFM还可以使用窗口右上角嘚“过滤器”字段来搜索所需的“报告任务”,或使用左上角的“源”下拉列表按创建它们的组筛选列表从列表中选择报告任务后,DFM可鉯在下面看到该任务的描述选择所需的报告任务,然后单击“添加”或者只需双击要添加的服务名称即可。

添加报告任务后DFM可以通過单击Edit最右侧列中的按钮对其进行配置。在此列中的其他按钮包括StartRemoveStateAccess Policies

您可以获取有关通过点击报告任务信息View DetailsUsage以及Alerts在左侧栏中的按鈕

当DFM单击该Edit按钮时,将打开“配置报告任务”窗口它有三个选项卡:设置,属性和注释此窗口类似于“配置处理器”窗口。“设置”选项卡为DFM提供了一个位置以便为报告任务提供唯一的名称(如果需要)。它还列出了任务的UUIDType和Bundle信息,并提供了任务的Scheduling Strategy和Run Schedule的设置(类姒于处理器中的相同设置)DFM可以将鼠标悬停在问号图标上以查看有关每个设置的更多信息。

“属性”选项卡列出了可为任务配置的各种屬性DFM可以将鼠标悬停在问号图标上以查看有关每个属性的更多信息。

“注释”选项卡只是一个开放文本字段其中DFM可能包含有关任务的紸释。配置报告任务后单击Apply按钮以应用配置并关闭窗口,或单击Cancel按钮取消更改并关闭窗口

如果要运行“报告任务”,请单击Start按钮()

将处理器和其他组件添加到画布并进行配置后,下一步是将它们相互连接以便NiFi知道在处理完每个FlowFile后如何处理。这是通过在每个组件之間创建连接来实现的当用户将鼠标悬停在组件的中心上时,会出现一个新的连接图标(  ):

用户将连接气泡从一个组件拖动到另一个组件直到第二个组件突出显示。当用户释放鼠标时会出现“创建连接”对话框。该对话框包含两个选项卡:“详细信息”和“设置”咜们将在下面详细讨论。请注意可以绘制连接,以便它在同一处理器上循环如果DFM希望处理器在失败关系时尝试重新处理FlowFiles,这将非常有鼡要创建这种类型的循环连接,只需将连接气泡拖离然后再返回到同一处理器,直到它突出显示然后释放鼠标,出现相同的“创建連接”对话框

“创建连接”对话框的“详细信息”选项卡提供有关源和目标组件的信息,包括组件名称组件类型和组件所在的进程组:

此外,此选项卡还提供了选择此Connection中应包含哪些关系的功能必须至少选择一个关系。如果只有一个关系可用则会自动选择它。

如果使鼡相同的关系添加多个Connections则将自动“克隆”路由到该关系的任何FlowFile,并将副本发送到每个Connections

“设置”选项卡提供配置连接名称,FlowFile到期背压閾值,负载平衡策略和优先级的功能:

连接名称是可选的如果未指定,则为Connection显示的名称将是Connection的活动关系的名称

FlowFile到期是一个概念,通过該概念可以自动从流中删除无法及时处理的数据例如,当预计数据量超过可以发送到远程站点的卷时这很有用。在这种情况下到期鈳以与优先级排序器一起使用,以确保首先处理最高优先级数据然后可以丢弃在特定时间段(例如,一小时)内无法处理的任何内容箌期时间基于数据进入NiFi实例的时间。换句话说如果给定连接上的文件到期时间设置为“1小时”,并且已经在NiFi实例中一小时的文件到达该連接则该文件将过期。默认值为0 sec表示数据永不过期当设置了“0秒”以外的文件到期时,连接标签上会出现一个小时钟图标因此在查看画布上的流时,DFM可以一目了然地看到它

NiFi为后台压力提供两种配置元素。这些阈值表示在不再计划运行作为Connection源的组件之前应允许在队列中存在多少数据。这允许系统避免数据溢出提供的第一个选项是“后台压力对象阈值”。这是在应用后台压力之前可以在队列中的FlowFiles的數量第二个配置选项是“背压数据大小阈值”。这指定了在应用反压之前应排队的最大数据量(大小)通过输入数字后跟数据大小(B對于字节,KB对于千字节MB对于兆字节,GB对于千兆字节或TB对于太字节)来配置此值

默认情况下,添加的每个新连接都将具有默认的后台压仂对象阈值10,000 objects和后台压力数据大小阈值1 GB可以通过修改nifi.properties文件中的相应属性来更改这些默认值。

启用背压时连接标签上会出现小进度条,因此在查看画布上的流时DFM可以一目了然地看到它。进度条根据队列百分比更改颜色:绿色(0-60%)黄色(61-85%)和红色(86-100%)。

将鼠标悬停茬条形图上会显示确切的百分比

队列完全填满后,Connection将以红色突出显示

为了在群集中的节点之间分配流中的数据,NiFi提供以下负载平衡策畧:

  • attribute:根据用户指定的FlowFile属性的值确定将给定FlowFile发送到哪个节点具有相同Attribute值的所有FlowFile将发送到集群中的同一节点。如果目标节点与群集断开连接或无法通信则数据不会故障转移到另一个节点。数据将排队等待节点再次可用。此外如果节点加入或离开集群需要重新平衡数据,则应用一致性散列以避免必须重新分发所有数据

  • Round robin:FlowFiles将以循环方式分发到集群中的节点。如果节点与群集断开连接或无法与节点通信則排队等待该节点的数据将自动重新分发到另一个节点。

  • Single node:所有FlowFiles将发送到集群中的单个节点它们被发送到哪个节点是不可配置的。如果節点与群集断开连接或无法与节点通信则排队等待该节点的数据将保持排队,直到该节点再次可用

除UI设置外,还有与负载平衡相关的还必须在nifi.properties中进行配置。
NiFi会在重新启动时持久保存群集中的节点这可以防止在所有节点都已连接之前重新分配数据。如果群集已关闭且無意重新启动节点则用户有责任通过UI中的“群集”对话框从群集中删除该节点(有关详细信息,请参阅)

选择负载平衡策略后,用户鈳以配置在群集中的节点之间传输时是否应压缩数据

可以使用以下压缩选项:

为连接实施负载平衡策略后,连接上将显示负载平衡指示苻():

将鼠标悬停在该图标上将显示连接的负载平衡策略和压缩配置此状态下的图标还表示连接中的所有数据都已在群集中分布。

当茬群集中的节点之间主动传输数据时负载平衡指示器将更改方向和颜色:

要查看在群集节点之间分配数据的位置,请从“全局菜单”中選择“摘要”然后选择“连接”选项卡和源的“查看连接详细信息”图标:

这将打开“群集连接摘要”对话框,该对话框显示群集中每個节点上的数据:

选项卡的右侧提供了对队列中数据进行优先级排序的功能以便首先处理更高优先级的数据。优先级可以从顶部('可用嘚优先级排序器')??拖动到底部('选择的优先级排序器')??可以选择多个优先级排序器。位于“所选优先级”列表顶部的优先级排序是最高优先级如果两个FlowFiles根据此优先级排序器具有相同的值,则第二个优先级排序器将确定首先处理哪个FlowFile依此类推。如果不再需要优先级排序器则可以将其从“选定的优先级排序器”列表拖动到“可用的优先级排序器”列表。

可以使用以下优先顺序:

  • 如果只有一个具囿该属性它将首先出现。

  • “priority”属性的值可以是字母数字其中“a”将出现在“z”之前,“1”出现在“9”之前

  • 如果“priority”属性无法解析为long則将使用unicode字符串排序。例如:“99”和“100”将被排序因此带有“99”的流文件首先出现,但“A-99”和“A-100”将排序因此带有“A-100”的流文件首先絀现。

与配置连接有除了本地队列每个节点的队列。优先级排序器将独立地对每个队列中的数据进行排序

更改配置和上下文菜单选项

茬两个组件之间建立连接之后,可以更改连接的配置并且可以将连接移动到新目的地; 但是,必须先停止连接任一侧的处理器然后才能進行配置或目标更改。

要更改连接的配置或以其他方式与连接交互请右键单击连接以打开连接上下文菜单。

  • Configure:此选项允许用户更改连接嘚配置

  • View status history:此选项打开连接统计信息随时间的图形表示。

  • Go to source:如果画布上连接的源组件和目标组件之间有很长的距离则此选项很有用。通過单击此选项画布视图将跳转到连接源。

  • Go to destination:与“转到源”选项类似此选项将视图更改为画布上的目标组件,如果两个连接的组件之间存在较长距离则此选项可能很有用。

  • Bring to front:如果其他东西(例如另一个连接)与其重叠则此选项将连接带到画布的前面。

  • Empty queue:此选项允许DFM清除可能正在等待处理的FlowFiles队列当DFM不关心从队列中删除数据时,此选项在测试期间特别有用选择此选项后,用户必须确认是否要删除队列Φ的数据

  • Delete:此选项允许DFM删除两个组件之间的连接。请注意必须先停止连接两侧的组件,并且连接必须为空才能删除

要向现有连接添加弯曲点(或弯头),只需双击要弯曲点所在位置的连接即可然后,您可以使用鼠标抓住弯曲点并拖动它以便以所需的方式弯曲连接。您可以根据需要添加任意数量的弯曲点您还可以使用鼠标将连接上的标签拖动并移动到任何现有折弯点。要删除折弯点只需再次双擊即可。

在尝试启动处理器之前确保处理器的配置有效非常重要。状态指示器显示在处理器的左上角如果处理器无效,指示器将显示黃色警告指示器并带有感叹号,表示存在问题:

在这种情况下使用鼠标悬停在指示器图标上将提供工具提示,显示处理器的所有验证錯误一旦解决了所有验证错误,状态指示器将变为Stop图标表示处理器有效并准备启动但当前未运行:

当从一个NiFi实例向另一个实例发送数據时,可以使用许多不同的协议但是,首选协议是NiFi站点到站点协议站点到站点可以轻松安全高效地将数据传输到一个NiFi实例中的节点或從一个NiFi实例中的节点或数据生成应用程序传输到另一个NiFi实例或其他消费应用程序中的节点。

使用站点到站点提供以下好处:

    • 输入远程NiFi实例嘚URL后将自动发现可用端口(端点)并在下拉列表中提供

    • 站点到站点可选地使用证书来加密数据并提供身份验证和授权。可以将每个端口配置为仅允许特定用户并且只有那些用户才能看到该端口甚至存在。有关配置证书的信息请参阅 “ 部分 。

    • 随着远程群集中的节点发生哽改将自动检测这些更改,并在群集中的所有节点上扩展数据

    • 站点到站点允许一次发送批量的FlowFiles,以避免建立连接和在对等点之间进行哆次往返请求的开销

    • 校验和由发送方和接收方自动生成,并在数据传输后进行比较以确保没有发生损坏。如果校验和不匹配则只会取消交易并再次尝试。

    • 当节点联机或退出远程群集或节点的负载变得更重或更轻时,将自动调整定向到该节点的数据量

    • 当通过此协议傳输FlowFile时,所有FlowFile的属性都会随之自动传输这在许多情况下是非常有利的,因为由一个NiFi实例确定的所有上下文和丰富随数据传播使得数据噫于路由并且允许用户容易地检查数据。

    • 随着新技术和新想法的出现处理站点到站点通信的协议能够随之改变。当与远程NiFi实例建立连接時执行握手以协商将使用哪种协议和协议版本。这允许添加新功能同时仍保持与所有旧实例的向后兼容性。此外如果在协议中发现漏洞或缺陷,它允许更新版本的NiFi禁止通过受损版本的协议进行通信

站点到站点是在两个NiFi实例之间传输数据的协议。两端可以是独立的NiFi或NiFi集群在本节中,NiFi实例启动通信称为站点到站点客户端NiFi实例另一端启动为站点到站点服务器NiFi实例,以阐明每个NiFi实例所需的配置

NiFi实例可鉯是站点到站点协议的客户端和服务器,但是它只能是特定站点到站点通信中的客户端或服务器。例如如果有三个NiFi实例A,B和C.甲将数据嶊送到B和B从C.提取数据A?—?push → B ← pull?—?C。那么B不仅是A和B之间通信的服务器还是B和C中的客户端

了解哪个NiFi实例将是客户端或服务器以设計数据流并相应地配置每个实例非常重要以下是基于数据流方向在哪一方运行的组件的摘要:

  • Push:客户端数据发送到远程进程组,服务器通过输入端口接收数据

  • Pull:客户端从远程进程组接收数据服务器通过输出端口发送数据

配置站点到站点客户端NiFi实例

远程进程组(Remote Process Group):为了通過站点到站点与远程NiFi实例进行通信,只需将拖到画布上然后输入远程NiFi实例的URL(有关远程进程组组件的更多信息) ,请参阅 本指南的“ 部汾)URL与用于转到该实例的用户界面的URL相同。此时您可以使用与将处理器连接到处理器或本地进程组的连接相同的方式将连接拖到远程進程组或从远程进程组拖出连接。拖动连接时您将有机会选择要连接的端口。请注意远程进程组最多可能需要一分钟才能确定哪些端ロ可用。

如果从远程进程组开始拖动连接则显示的端口将是远程组的输出端口,因为这表示您将从远程实例中提取数据如果连接在远程进程组上结束,则显示的端口将是远程组的输入端口因为这意味着您将数据推送到远程实例。

如果远程实例配置为使用安全数据传输您将只看到您有权与之通信的端口。有关配置NiFi以安全运行的信息请参阅“ 。

传输协议:在远程进程组创建或配置对话框中您可以选擇用于站点到站点通信的传输协议,如下图所示:

默认情况下它设置为RAW,它使用专用端口使用原始套接字通信如果远程NiFi实例位于仅允許通过HTTP(S)协议进行访问或仅可从特定HTTP代理服务器访问的受限网络中,则HTTP传输协议特别有用对于通过HTTP代理服务器进行访问,支持BASIC和DIGEST身份驗证

Interface):在某些情况下,可能需要优先选择一个网络接口而不是另一个网络接口例如,如果存在有线接口和无线接口则有线接口可能昰优选的。可以通过指定要在此框中使用的网络接口的名称来配置如果输入的值无效,则远程进程组将无效并且在解决此问题之前不會与其他NiFi实例通信。

配置站点到站点服务器NiFi实例

检索站点到站点详细信息:如果您的NiFi正在安全运行为了让另一个NiFi实例从您的实例中检索信息,需要将其添加到Global Access“检索站点到站点详细信息”策略这将允许另一个实例查询您的实例以获取详细信息,例如名称描述,可用对等体(群集时的节点)统计信息,OS端口信息以及可用的输入和输出端口在安全实例中使用输入和输出端口需要额外的策略配置,如下所述

输入端口:为了允许另一个NiFi实例将数据推送到本地实例,您只需将拖到画布的根进程组即可输入端口名称后,它将添加到您的流程中您现在可以右键单击“输入端口”并选择“配置”,以便调整用于端口的名称和并发任务数

如果将站点到站点配置为安全运行,則需要管理端口的“通过站点到站点接收数据”组件访问策略只有已添加到策略的用户才能与端口通信。

输出端口:与输入端口类似DataFlow Manager鈳以选择将添加到根进程组。输出端口允许授权的NiFi实例远程连接到您的实例并从输出端口提取数据配置输出端口和管理端口的访问策略將再次允许DFM控制允许的并发任务数,以及授权哪些用户从正在配置的实例中提取数据

除了NiFi的其他实例之外,一些其他应用程序可以使用站点到站点客户端来将数据推送到NiFi实例或从NiFi实例接收数据例如,NiFi提供Apache Storm spout和Apache Spark Receiver它们能够从NiFi的根组输出端口提取数据。

有关如何在NiFi实例上启用囷配置站点到站点的信息请参阅 “ 部分 。

有关如何配置访问策略的信息请参阅 “ 部分 。

本节介绍了构建数据流所需的步骤现在,把咜们放在一起以下示例数据流仅包含两个处理器:GenerateFlowFile和LogAttribute。这些处理器通常用于测试但它们也可用于构建快速流程以用于演示目的,并查看NiFi的运行情况

将GenerateFlowFile和LogAttribute处理器拖到画布并连接它们(使用上面提供的指南)后,按如下所示进行配置:

    • 在“调度”选项卡上将“运行计划”设置为:5秒。请注意GenerateFlowFile处理器可以非常快速地创建许多FlowFiles; 这就是为什么设置运行计划很重要,这样这个流程就不会让NiFi运行的系统不堪重负

    • 在“属性”选项卡上,将“文件大小”设置为:10 KB

    • 在“设置”选项卡上的“自动终止关系”下选中“成功”旁边的复选框。这将在此处悝器成功处理后终止FlowFiles

    • 同样在“设置”选项卡上,将“公告”级别设置为“信息”这样,当数据流运行时此处理器将显示公告图标(請参阅),用户可以使用鼠标将鼠标悬停在其上以查看处理器正在记录的属性

现在请参阅以下有关如何启动和停止数据流的部分。数据鋶运行时请务必记下每个处理器正面显示的统计信息(请参阅处理器)。

将组件添加到NiFi画布时它处于“已停止”状态。为了使组件被觸发必须启动组件。一旦启动组件可以随时停止。从“已停止”状态可以配置,启动或禁用该组件

要启动组件,必须满足以下条件:

  • 组件的所有已定义关系必须连接到另一个组件或自动终止

  • 该组件必须没有活动任务。有关活动任务的详细信息请参阅“解剖......”段丅(,)。

可以通过选择要启动的所有组件然后单击 “操作选项板”中的Start按钮( )或右键单击单个组件并从上下文菜单中选择“启动”來启动组件

如果启动进程组,则将启动该进程组中的所有组件(包括子进程组)但无效或禁用的组件除外。

一旦启动处理器的状态指示器将变为播放符号(  )。

组件可以在运行时停止通过右键单击组件并从上下文菜单中单击“停止”,或者通过选择组件并单击 “操莋选项板”中的Stop按钮( )来停止组件

如果进程组已停止,则将停止进程组(包括子进程组)中的所有组件

停止后,组件的状态指示器將更改为停止符号(  )

停止组件不会中断其当前正在运行的任务。相反它会停止安排要执行的新任务。活动任务的数量显示在处理器嘚右上角(有关 详细信息请参阅处理器)。

启用组件后即可启动它。例如用户可以选择在组件仍然是正在组装的数据流的一部分时禁用组件。通常如果不打算运行组件,则禁用该组件而不是将其置于“已停止”状态。这有助于区分有意未运行的组件和可能已暂时停止的组件(例如更改组件的配置),并且无意中从未重新启动

当需要重新启用组件时,可以通过选择组件并单击 “操作选项板”中嘚Enable按钮( )来启用它仅当禁用所选组件时,此选项才可用或者,可以通过选中“处理器配置”对话框的“设置”选项卡中的“已启用”选项旁边的复选框或端口的配置对话框来启用组件

然后,通过选择组件并单击“ 操作选项板”中的Disable按钮( )或清除“处理器配置”對话框的“设置”选项卡中的“已启用”选项旁边的复选框或端口的配置对话框,可以禁用组件

只能启用和禁用端口和处理器。

远程进程组提供了一种向远程NiFi实例发送数据或从中检索数据的机制将远程进程组(RPG)添加到画布时,会添加“禁用传输”如 左上角的图标( )所示。当传输被禁用时可以通过右键单击RPG并单击“启用传输”菜单项来启用它。这将导致有连接的所有端口开始传输数据这将导致狀态指示灯变为Transmission

如果与远程进程组通信时出现问题,则 可能会在左上角显示警告指示符( )使用鼠标将鼠标悬停在此警告指示器上将提供有关该问题的更多信息。

有时DFM可能希望仅为远程进程组中的特定端口启用或禁用传输。这可以通过右键单击远程进程组并选择“远程端口”菜单项来完成这提供了一个配置对话框,可以从中配置每个端口:

左侧列出了NiFi远程实例允许发送数据的所有输入端口右侧列出叻此实例能够从中提取数据的所有输出端口。如果远程实例正在使用安全通信(NiFi实例的URL以https://而不是http://),则不会显示远程实例未对此实例可鼡的任何端口

如果此对话框中未显示预期显示的端口,请确保实例具有适当的权限并且远程进程组的流是最新的。可以通过关闭“端ロ配置”对话框并查看“远程进程组”的右下角来检查显示上次刷新流的日期。如果流程似乎已过时可以通过右键单击远程进程组并選择“刷新流程”来更新它。(有关更多信息请参阅)。

每个端口都显示端口名称后跟其描述,当前配置的并发任务数以及是否将壓缩发送到此端口的数据。此信息的左侧是用于打开或关闭端口的开关那些没有连接到它们的连接的端口显示为灰色:

on/off 开关提供了一种機制,可以独立地启用和禁用远程过程组中每个端口的传输可以通过单击 开/关开关下方的铅笔图标()来配置已连接但当前未传输的端ロ 。单击此图标将允许DFM更改并发任务的数量以及在向此端口传输数据时是否应使用压缩。

NiFi提供各种机制来绕过数据流该部分描述了在NiFi畫布中导航的各种方法; 但是,一旦画布上存在流就会有其他方法从一个组件到另一个组件。当流中存在多个流程组时面包屑会显示在屏幕底部,提供在它们之间导航的方法此外,要进入当前在画布上可见的进程组只需双击它,从而“向下钻取”它Connections还提供了一种在鋶程中从一个位置跳转到另一个位置的方法。右键单击连接并选择“转到源”或“转到目标”以跳转到连接的一端或另一端这在大型复雜数据流中非常有用,其中连接线可能很长并且跨越画布的大部分区域最后,所有组件都提供在流程中向前或向后跳跃的能力右键单擊任何组件(例如,处理器进程组,端口等)然后选择“上游连接”或“下游连接”。将打开一个对话框窗口显示用户可以跳转到嘚可用上游或下游连接。当尝试沿向后方向跟踪数据流时这尤其有用。通常很容易从头到尾跟踪数据流的路径向下钻取到嵌套的流程組; 但是,在另一个方向上跟踪数据流可能更加困难将打开一个对话框窗口,显示用户可以跳转到的可用上游或下游连接当尝试沿向后方向跟踪数据流时,这尤其有用通常很容易从头到尾跟踪数据流的路径,向下钻取到嵌套的流程组; 但是在另一个方向上跟踪数据流可能更加困难。将打开一个对话框窗口显示用户可以跳转到的可用上游或下游连接。当尝试沿向后方向跟踪数据流时这尤其有用。通常佷容易从头到尾跟踪数据流的路径向下钻取到嵌套的流程组; 但是,在另一个方向上跟踪数据流可能更加困难

超链接可用于直接导航到NiFi畫布上的组件。在配置时这尤其有用。例如可以将URL提供给用户以将其定向到他们具有特权的特定进程组。

NiFI实例的默认URL是指向根进程组在画布上选择组件后,将使用表单中组件的进程组ID和组件ID更新URL ;在以下屏幕截图中,进程组PG1中的GenerateFlowFile处理器是所选组件:

支持链接到画布上嘚多个组件但限制URL的长度不能超过2000个字符。

NiFi画布上的组件可以对齐以更精确地排列数据流。为此首先选择要对齐的所有组件。然后祐键单击以查看上下文菜单并根据所需结果选择“垂直对齐”或“水平对齐”。

以下是在画布上垂直对齐组件的示例选中/突出显示所囿组件后,右键单击:

并选择“垂直对齐”以获得以下结果:

以下是在画布上水平对齐组件的示例选中/突出显示所有组件后,右键单击:

并选择“水平对齐”以获得以下结果:

NiFi提供有关DataFlow的大量信息以便监控其健康状况。状态栏提供有关整体系统运行状况的信息(请参阅)处理器,进程组和远程进程组提供有关其操作的细粒度详细信息连接和进程组提供有关其队列中数据量的信息。摘要页面以表格格式提供有关画布上所有组件的信息还提供包括磁盘使用情况,CPU利用率以及Java堆和垃圾收集信息的系统诊断在群集环境中,此信息可以按節点使用也可以作为整个群集中的聚合使用。我们将在下面探讨每个监控工件

NiFi提供有关画布上每个处理器的大量信息。下图显示了处悝器的解剖结构:

该图像概述了以下元素:

  • 处理器类型(Processor Type):NiFi提供多种不同类型的处理器以便执行各种任务。每种类型的处理器都旨在执行┅项特定任务处理器类型(在此示例中为PutFile)描述了此处理器执行的任务。在这种情况下处理器将FlowFile写入磁盘 - 或者将FlowFile“放入”文件。

  • Indicator):当處理器记录某个事件已发生时它会生成一个公告,以通过用户界面通知正在监控NiFi的人员DFM能够通过更新“处理器配置”对话框的“设置”选项卡中的“公告级别”字段来配置应在用户界面中显示的公告。默认值为WARN这意味着UI中仅显示警告和错误。除非此处理器存在公告否则此图标不存在。当它出现时用鼠标悬停在图标上将提供一个工具提示,说明处理器和公告级别提供的消息如果NiFi的实例是群集的,咜还将显示发布公告的节点

  • 状态指示灯(Status Indicator):显示处理器的当前状态。以下指标是可能的:

    •  已停止(Stopped):处理器有效并已启用但未运行

    • }

我要回帖

更多关于 如何开启桌面体验功能 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信