Apache NiFi用戶指南

介紹

Apache NiFi是基於流程編程概念的數據流系統。它支持強大且可擴展的數據路由,轉換和系統中介邏輯的有向圖。NiFi具有基於Web的用戶界面,用於設計,控制,反饋和監控數據流。它在服務質量的幾個方面具有高度可配置性,例如容錯與保證交付,低延遲與高吞吐量以及基於優先級的排隊。NiFi爲所有接收,分叉,加入克隆,修改,發送和最終在達到其配置的最終狀態時丟棄的數據提供細粒度數據來源。

有關係統要求,安裝和配置的信息,請參閱“ 系統管理員指南”。安裝NiFi後,使用支持的Web瀏覽器查看UI。

瀏覽器支持

 

Browser Version

Chrome

Current and Current - 1

FireFox

Current and Current - 1

Edge

Current and Current - 1

Safari

Current and Current - 1

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的某些部分可能會變得不可用。

術語

DataFlow Manager:DataFlow Manager(DFM)是NiFi用戶,具有添加,刪除和修改NiFi數據流組件的權限。

FlowFile:FlowFile代表NiFi中的單個數據。FlowFile由兩個組件組成:FlowFile Attributes和FlowFile Content 

Content是FlowFile表示的數據。

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的隊列中。

Controller Service:控制器服務是擴展點,在用戶界面中由DFM添加和配置後,將在NiFi啓動時啓動,並提供供其他組件(如處理器或其他控制器服務)使用的信息。多個組件使用的常見Controller服務是StandardSSLContextService。它提供了一次配置密鑰庫和/或信任庫屬性的能力,並在整個應用程序中重用該配置。我們的想法是,控制器服務不是在每個可能需要它的處理器中配置這些信息,而是根據需要爲任何處理器提供。

Reporting Task:報告任務在後臺運行,以提供有關NiFi實例中發生情況的統計報告。DFM根據需要在用戶界面中添加和配置報告任務。常見的報告任務包括ControllerStatusReportingTask,MonitorDiskUsage報告任務,MonitorMemory報告任務和StandardGangliaReporter。

FunnelFunnel是一個NiFi組件,用於將來自多個Connections的數據合併到一個Connection中。

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用戶界面

NiFi UI提供了創建自動數據流以及可視化,編輯,監視和管理這些數據流的機制。UI可以分爲幾個部分,每個部分負責應用程序的不同功能。本節提供應用程序的屏幕截圖,並突出顯示UI的不同部分。每個部分將在本文檔後面進一步詳細討論。

啓動應用程序後,用戶可以通過轉到http://<hostname>:8080/nifiWeb瀏覽器中的默認地址導航到UI 。默認情況下沒有配置權限,因此任何人都可以查看和修改數據流。有關保護系統的信息,請參閱“ 系統管理員指南”

當DFM首次導航到UI時,會提供一個空白畫布,可在其上構建數據流:

 

 

 

組件工具欄跨越屏幕的左上角。它包含可以拖動到畫布上以構建數據流的組件。在構建DataFlow中更詳細地描述了每個組件。

狀態欄位於組件工具欄下。狀態欄提供有關當前在流中處於活動狀態的線程數,流中當前存在的數據量,每個狀態中畫布上存在的遠程進程組數(傳輸,未傳輸),有多少的信息畫布上的處理器存在於每個狀態(已停止,正在運行,無效,已禁用),每個狀態下畫布上存在多少個版本化的進程組(最新,本地修改,過時,本地修改和失效,同步失敗)和上次刷新所有此類信息的時間戳。此外,如果NiFi實例是羣集的,則狀態欄會顯示羣集中有多少節點以及當前連接的節點數。

操作面板位於屏幕的左側。它由DFM用於管理流的按鈕以及管理用戶訪問和配置系統屬性的管理員組成,例如應嚮應用程序提供多少系統資源。

在畫布的右側是搜索和全局菜單。您可以使用“搜索”輕鬆查找畫布上的組件,並可以按組件名稱,類型,標識符,配置屬性及其值進行搜索。全局菜單包含允許您操作畫布上現有組件的選項:

 

此外,UI還具有一些功能,可讓您輕鬆瀏覽畫布。您可以使用“導航選項板”在畫布上平移,以及放大和縮小。數據流的“鳥眼視圖”提供了數據流的高級視圖,並允許您平移大部分數據流。您還可以在屏幕底部找到麪包屑。當您導航進出流程組時,麪包屑會顯示流程中的深度,以及您輸入的每個流程組以達到此深度。麪包屑中列出的每個進程組都是一個鏈接,可以將您帶回流中的該級別。

 

 

 

使用多租戶授權訪問UI

多租戶授權允許多組用戶(租戶)命令,控制和觀察數據流的不同部分,具有不同級別的授權。當經過身份驗證的用戶嘗試查看或修改NiFi資源時,系統會檢查用戶是否具有執行該操作的權限。這些權限由可以應用於系統範圍或單個組件的策略定義。從數據流管理器的角度來看,這意味着一旦您可以訪問NiFi畫布,您就可以看到一系列功能,具體取決於分配給您的權限。

可用的全球訪問策略是:

策略 特權

view the UI

允許用戶查看UI

access the controller

允許用戶查看和修改控制器,包括報告任務,控制器服務和羣集中的節點

query provenance

允許用戶提交出處搜索並請求甚至沿襲

access restricted components

假設其他權限足夠,允許用戶創建/修改受限制的組件。受限組件可以指示需要哪些特定權限。可以爲特定限制授予權限,也可以在不受限制的情況下授予權限。如果授予權限而不受限制,則用戶可以創建/修改所有受限制的組件。

access all policies

允許用戶查看和修改所有組件的策略

access users/groups

允許用戶查看和修改用戶和用戶組

retrieve site-to-site details

允許其他NiFi實例檢索站點到站點的詳細信息

view system diagnostics

允許用戶查看系統診斷

proxy user requests

允許代理計算機代表其他人發送請求

access counters

允許用戶查看和修改計數器

可用的組件級訪問策略包括:

政策 特權

view the component

允許用戶查看組件配置詳細信息

modify the component

允許用戶修改組件配置詳細信息

view provenance 允許用戶提交出處搜索並請求甚至追溯
view the data

允許用戶在出站連接中的流文件隊列中以及通過出處事件查看此組件的元數據和內容

modify the data

允許用戶在出站連接中清空流文件隊列,並通過出處事件提交重播

view the policies

允許用戶查看可以查看和修改組件的用戶列表

modify the policies

允許用戶修改可以查看和修改組件的用戶列表

retrieve data via site-to-site

允許端口從NiFi實例接收數據

send data via site-to-site

允許端口從NiFi實例發送數據

如果您無法查看或修改NiFi資源,請與系統管理員聯繫,或參閱系統管理員指南中的配置用戶和訪問策略以 獲取更多信息。

登錄

如果NiFi配置爲安全運行,則用戶將能夠請求訪問DataFlow。有關配置NiFi以安全運行的信息,請參閱“ 系統管理員指南”。如果NiFi支持匿名訪問,則會爲用戶提供相應的訪問權限,並提供登錄選項。

單擊“登錄”鏈接將打開登錄頁面。如果用戶使用他們的用戶名/密碼登錄,他們將會看到一個表單。如果NiFi未配置爲支持匿名訪問且用戶使用其用戶名/密碼登錄,則會立即將其發送到繞過畫布的登錄表單。

登錄

構建DataFlow

DFM能夠使用NiFi UI構建自動數據流。只需將組件從工具欄拖到畫布,配置組件以滿足特定需求,並將組件連接在一起。

向畫布添加組件

上面的“用戶界面”部分概述了UI的不同部分,並指出了“組件工具欄”。本節將查看該工具欄中的每個組件:

 處理器:處理器是最常用的組件,因爲它負責數據的入口,出口,路由和操作。有許多不同類型的處理器。實際上,這是NiFi中非常常見的擴展點,這意味着許多供應商可能會實施自己的處理器來執行其用例所需的任何功能。將處理器拖動到畫布上時,會向用戶顯示一個對話框,以選擇要使用的處理器類型:

 

在右上角,用戶可以根據處理器類型或與處理器關聯的標籤過濾列表。處理器開發人員能夠將標籤添加到其處理器中。這些標籤在此對話框中用於過濾,並顯示在標籤雲的左側。使用特定標記存在的處理器越多,標記在標記雲中顯示的越大。單擊雲中的標記會將可用的處理器過濾爲僅包含該標記的處理器。如果選擇了多個標記,則僅顯示包含所有這些標記的處理器。例如,如果我們只想顯示那些允許我們提取文件的處理器,我們可以同時選擇filesTag和ingestTag:

 

 

受限制的組件將在受限 其名稱旁邊標有 圖標。這些組件可用於執行操作員通過NiFi REST API / UI提供的任意未經過抽樣的代碼,或者可用於使用NiFi OS憑證獲取或更改NiFi主機系統上的數據。這些組件可由其他授權的NiFi用戶使用,超出應用程序的預期用途,升級特權,或者可能暴露有關NiFi進程或主機系統內部的數據。所有這些功能都應被視爲特權,管理員應瞭解這些功能,併爲可信用戶的子集明確啓用它們。在允許用戶創建和修改受限制的組件之前,必須授予他們訪問權限。徘徊在受限 圖標將顯示受限制的組件所需的特定權限。無論限制如何,都可以分配權限。在這種情況下,用戶可以訪問所有受限制的組件。或者,可以爲用戶分配對特定限制的訪問權限。如果用戶已被授予訪問組件所需的所有限制的權限,則他們將具有對該組件的訪問權限,否則將獲得足夠的權限。有關更多信息,請參閱 在版本化流程中訪問具有多租戶授權受限組件的UI

單擊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命名端口。進程組中的所有端口必須具有唯一的名稱。

All components exist only within a Process Group. When a user initially navigates to the NiFi page, the user is placed in the Root Process Group. If the Input Port is dragged onto the Root Process Group, the Input Port provides a mechanism to receive data from remote instances of NiFi via Site-to-Site. In this case, the Input Port can be configured to restrict access to appropriate users, if NiFi is configured to run securely. For information on configuring NiFi to run securely, see theSystem Administrator’s Guide.

輸出端口 Output Port: Output Ports provide a mechanism for transferring data from a Process Group to destinations outside of the Process Group. When an Output Port is dragged onto the canvas, the DFM is prompted to name the Port. All Ports within a Process Group must have unique names.

如果將輸出端口拖動到根進程組,則輸出端口提供了一種通過站點到站點將數據發送到遠程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刪除進程組。

遠程進程組 Remote Process Group:遠程進程組顯示並且行爲類似於進程組。但是,遠程進程組(RPG)引用了NiFi的遠程實例。將RPG拖動到畫布上時,不會提示輸入名稱,而是提示DFM輸入遠程NiFi實例的URL。如果遠程NiFi是羣集實例,則應使用的URL是該羣集中任何NiFi實例的URL。當數據通過RPG傳輸到NiFi的羣集實例時,RPG將首先連接到遠程實例,其URL配置爲確定羣集中的節點以及每個節點的繁忙程度。然後,此信息用於對推送到每個節點的數據進行負載平衡。然後定期詢問遠程實例,以確定有關從羣集中刪除或添加到羣集的任何節點的信息,並根據每個節點的負載重新計算負載平衡。有關更多信息,請參閱有關的部分站點到站點

將遠程進程組拖到畫布上後,可以通過右鍵單擊遠程進程組並從上下文菜單中選擇一個選項來與其進行交互。根據分配給您的權限,上下文菜單中可用的選項會有所不同。

雖然上下文菜單中的選項有所不同,但是當您具有使用遠程進程組的完全權限時,通常可以使用以下選項:

  • Configure:此選項允許用戶建立或更改遠程進程組的配置。

  • Enable transmission:激活NiFi實例之間的數據傳輸(請參閱遠程進程組傳輸)。

  • Disable transmission:禁用NiFi實例之間的數據傳輸。

  • View status history:此選項打開遠程過程組隨時間變化的統計信息的圖形表示。

  • View connections→Upstream:此選項允許用戶查看和“跳轉”進入遠程進程組的上游連接。

  • View connections→Downstream:此選項允許用戶查看和“跳轉”到遠程進程組外的下游連接。

  • Refresh remote:此選項刷新遠程NiFi實例的狀態視圖。

  • 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

組件版本 ( Component Versions )

您可以訪問有關處理器,控制器服務和報告任務的版本的信息。當您在具有運行不同版本組件的多個NiFi實例的集羣環境中工作或者已升級到較新版本的處理器時,此功能尤其有用。“添加處理器”,“添加控制器服務”和“添加報告任務”對話框包括一個標識組件版本的列,以及組件的名稱,創建組件的組織或組以及包含該組件的NAR捆綁包。

畫布上顯示的每個組件也包含此信息。

排序和過濾組件 (Sorting and Filtering Components)

添加組件時,可以根據原始源對版本號或過濾器進行排序。

要基於版本進行排序,請單擊版本列以按升序或降序版本順序顯示。

要基於源組進行過濾,請單擊“添加組件”對話框左上角的源下拉列表,然後選擇要查看的組。

更改組件版本

要更改組件版本,請執行以下步驟。

  1. 右鍵單擊畫布上的組件以顯示配置選項。

  2. 選擇更改版本。

  3. 在“組件版本”對話框中,從“版本”下拉菜單中選擇要運行的版本。

瞭解版本依賴關係

配置組件時,還可以查看有關版本依賴性的信息。

  1. 右鍵單擊組件,然後選擇“配置”以顯示組件的“配置”對話框。

  2. 單擊“屬性”選項卡。

  3. 單擊信息圖標以查看任何版本依賴關係信息。

在以下示例中,使用控制器服務StandardMyService 1.0版正確配置了MyProcessor 1.0版:

如果MyProcessor的版本更改爲不兼容的版本(MyProcessor 2.0),則驗證錯誤將顯示在處理器上:

並且由於服務不再有效,因此處理器的控制器服務配置中將顯示錯誤消息:

配置處理器 ( Configuring a Processor )

要配置處理器,請右鍵單擊處理器,然後Configure從上下文菜單中選擇該選項。或者,只需雙擊處理器即可。打開配置對話框,其中包含四個不同的選項卡,每個選項卡將在下面討論。完成處理器配置後,可以通過單擊Apply按鈕應用更改,或單擊按鈕取消所有更改Cancel

請注意,處理器啓動後,爲處理器顯示的上下文菜單不再有Configure 選項,而是有一個View Configuration選項。處理器運行時無法更改處理器配置。您必須先停止處理器並等待其所有活動任務完成,然後再次配置處理器。

請注意,不支持輸入某些控制字符,並在輸入時自動過濾掉。任何配置中都不會保留以下字符和任何未配對的Unicode代理點代碼點:

[#x0], [#x1], [#x2], [#x3], [#x4], [#x5], [#x6], [#x7], [#x8], [#xB], [#xC], [#xE], [#xF], [#x10], [#x11], [#x12], [#x13], [#x14], [#x15], [#x16], [#x17], [#x18], [#x19], [#x1A], [#x1B], [#x1C], [#x1D], [#x1E], [#x1F], [#xFFFE], [#xFFFF]

設置標籤

處理器配置對話框中的第一個選項卡是“設置”選項卡:

此選項卡包含幾個不同的配置項。首先,它允許DFM更改處理器的名稱。默認情況下,處理器的名稱與處理器類型相同。處理器名稱旁邊是一個複選框,指示處理器是否已啓用。將處理器添加到畫布後,將啓用它。如果禁用處理器,則無法啓動。禁用狀態用於指示當啓動一組處理器時,例如當DFM啓動整個進程組時,應排除此(禁用)處理器。

在Name配置下方,將顯示Processor的唯一標識符以及Processor的類型和NAR包。這些值無法修改。

接下來是兩個用於配置“懲罰持續時間”和“產量持續時間”的對話框。在處理一條數據(FlowFile)的正常過程期間,可能發生事件,該事件指示此時不能處理數據但是數據可以在稍後的時間處理。發生這種情況時,處理器可以選擇Penalize FlowFile。這將阻止FlowFile在一段時間內被處理。例如,如果處理器要將數據推送到遠程服務,但遠程服務已經有一個與處理器指定的文件名同名的文件,則處理器可能會懲罰FlowFile。“懲罰持續時間”允許DFM指定FlowFile應該受到多長時間的懲罰。默認值爲30 seconds

類似地,處理器可以確定存在某種情況,使得處理器不再能夠進行任何進展,而不管其正在處理的數據。例如,如果處理器要將數據推送到遠程服務並且該服務沒有響應,則處理器無法取得任何進展。結果,處理器應該“產生”,這將阻止處理器被安排運行一段時間。通過設置'Yield Duration'來指定該時間段。默認值爲1 second

“設置”選項卡左側的最後一個可配置選項是“公告”級別。每當處理器寫入其日誌時,處理器也將生成公告。此設置指示應在用戶界面中顯示的最低級別的公告。默認情況下,公告級別設置爲WARN,這意味着它將顯示所有警告和錯誤級別公告。

“設置”選項卡的右側包含“自動終止關係”部分。此處列出了處理器定義的每個關係及其描述。爲了使處理器被視爲有效且能夠運行,處理器定義的每個關係必須連接到下游組件或自動終止。如果關係是自動終止的,則將從流中刪除任何路由到該關係的FlowFile,並將其處理視爲完成。已連接到下游組件的任何關係都無法自動終止。必須首先從使用它的任何Connection中刪除關係。此外,對於選擇自動終止的任何關係,

調度選項卡

“處理器配置”對話框中的第二個選項卡是“計劃”選項卡:

調度策略

第一個配置選項是調度策略。調度組件有三種可能的選項:

Timer driven :這是默認模式。處理器將安排定期運行。運行處理器的時間間隔由“運行時間表”選項定義(見下文)。

Event driven:選擇此模式時,將觸發處理器以由事件運行,並且當FlowFiles進入連接此處理器的Connections時,將發生該事件。此模式目前被認爲是實驗性的,並非所有處理器都支持。選擇此模式時,“運行計劃”選項不可配置,因爲處理器未被觸發定期運行,而是作爲事件的結果。此外,這是“併發任務”選項可以設置爲0的唯一模式。在這種情況下,線程數僅受管理員配置的事件驅動線程池的大小限制。

CRON驅動:當使用CRON驅動的調度模式時,處理器被安排定期運行,類似於定時器驅動的調度模式。然而,CRON驅動模式以增加配置的複雜性爲代價提供了顯着更大的靈活性。CRON驅動的調度值是由六個必需字段和一個可選字段組成的字符串,每個字段由空格分隔。這些字段是:

Field Valid values

Seconds

0-59

Minutes

0-59

Hours

0-23

Day of Month

1-31

Month

1-12 or JAN-DEC

Day of Week

1-7 or SUN-SAT

Year (optional)

empty, 1970-2099

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

  • 數字:指定一個或多個有效值。您可以使用逗號分隔列表輸入多個值。

  • 範圍:使用  <number>-<number> 語法指定範圍。

  • 增量:使用 <start value>/<increment>語法指定增量。例如,在“分鐘”字段中,0/15表示分鐘 0,15,30 和 45。

您還應該知道幾個有效的特殊字符:

  • * - 表示所有值對該字段都有效。

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

  • L - 您可以將L附加到星期幾值中的一個,以指定該月中該日的最後一次出現。例如,1L表示該月的最後一個星期日。

例如:

  • 該字符串0 0 13 * * ?表示您希望將處理器安排在每天下午1:00運行。

  • 該字符串0 20 14 ? * MON-FRI表示您希望將處理器安排在每週一至週五下午2:20運行。

  • 該字符串0 15 10 ? * 6L 2011-2017表示您希望將處理器安排在2011年至2017年的每個月的最後一個星期五上午10:15運行。

有關其他信息和示例,請參閱Quartz文檔中的Chron Trigger教程

併發任務(Concurrent Tasks)

接下來,Scheduling選項卡提供名爲'Concurrent Tasks'的配置選項。這可以控制處理器將使用的線程數。換句話說,它控制此處理器應同時處理多少個FlowFiles。增加此值通常會使處理器在相同的時間內處理更多數據。但是,它通過使用其他處理器無法使用的系統資源來實現此目的。這基本上提供了處理器的相對權重 - 它控制應該將多少系統資源分配給此處理器而不是其他處理器。該字段適用於大多數處理器。但是,某些類型的處理器只能使用單個“併發”任務進行調度。

運行計劃(Run Schedule)

“運行計劃”指示應該安排處理器運行的頻率。此字段的有效值取決於所選的調度策略(參見上文)。如果使用事件驅動的調度策略,則此字段不可用。使用定時器驅動的調度策略時,該值是由數字後跟時間單位指定的持續時間。例如,1 second5 mins。默認值0 sec表示處理器應儘可能頻繁地運行,只要它有要處理的數據即可。這適用於0任何持續時間,而不管時間單位(即,0 sec0 mins0 days)。有關適用於CRON驅動的調度策略的值的說明,請參閱CRON驅動的調度策略本身的說明。

執行(Execution)

執行設置用於確定處理器將被調度執行的節點。選擇“所有節點”將導致在集羣中的每個節點上調度此處理器。選擇“主節點”將導致此處理器僅在主節點上進行調度。已爲“主節點”執行配置的處理器由處理器圖標旁邊的“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 Services的詳細信息,請參閱“ Controller Services”部分。

評論標籤

處理器配置對話框中的最後一個選項卡是“註釋”選項卡。此選項卡僅爲用戶提供一個區域,以包含適用於此組件的任何註釋。使用“註釋”選項卡是可選的:

其他幫助

您可以通過右鍵單擊處理器並從上下文菜單中選擇“使用”來訪問有關每個處理器使用情況的其他文檔。或者,從UI右上角的“全局菜單”中選擇“幫助”,以顯示包含所有文檔的“幫助”頁面,包括所有可用處理器的使用文檔。單擊所需的處理器以查看使用文檔。

使用表達式語言的自定義屬性

您可以使用NiFi表達式語言來引用FlowFile屬性,將它們與其他值進行比較,並在創建和配置數據流時操縱它們的值。有關表達式語言的更多信息,請參閱“ 表達式語言指南”

除了在Express Language中使用FlowFile屬性,系統屬性和環境屬性之外,您還可以定義表達式語言使用的自定義屬性。定義自定義屬性可以更靈活地處理和處理數據流。您還可以爲連接,服務器和服務屬性創建自定義屬性,以便更輕鬆地配置數據流。

NiFi屬性具有在創建自定義屬性時應注意的分辨率優先級:


  • 特定於處理器的屬性

  • FlowFile屬性


  • FlowFile屬性


  • 從變量註冊表:


    • 用戶定義的屬性(自定義屬性)

    • 系統屬性


    • 操作系統環境變量

在創建自定義屬性時,請確保每個自定義屬性包含不同的屬性值,以便現有環境屬性,系統屬性或FlowFile屬性不會覆蓋它。

有兩種方法可以使用和管理自定義屬性:

  • 在NiFi UI中通過Variables窗口

  • 通過nifi.properties引用自定義屬性

變量窗口

可以在NiFi UI中創建和配置變量。變量可用於支持表達式語言的任何字段。NiFi自動獲取在UI中創建的新變量或修改變量。

要訪問“變量”窗口,請在未選中任何內容的畫布上單擊鼠標右鍵:

 

從上下文菜單中選擇“變量”:

選擇進程組時,右鍵單擊“上下文菜單”中也可以使用“變量”:

創建變量

在“變量”窗口中,單擊+按鈕以創建新變量。添加名稱:

和一個值:

選擇“應用”:

執行更新變量的步驟(識別受影響的組件,停止受影響的處理器等)。例如,Referencing Processors部分現在列出了“PutFile-Root”處理器。在列表中選擇處理器的名稱將導航到畫布上的該處理器。查看處理器的屬性,${putfile_dir}由Directory屬性引用:

可變範圍

變量的作用域由它們定義的進程組確定,並且可供該級別及以下定義的任何處理器使用(即任何後代處理器)。

後代組中的變量會覆蓋父組中的值。更具體地說,如果變量x在根組中聲明並且也在進程組內聲明,則進程組內的組件將使用進程組中x定義的值。

例如,除了putfile_dir根進程組中存在的變量之外,假設putfile_dir在進程組A中創建了另一個變量。如果進程組A中的一個組件引用putfile_dir,則將列出這兩個變量,但是putfile_dir根組中的變量將是有一個刪除線表明被覆蓋:

只能爲其創建的進程組修改變量,該變量列在“變量”窗口的頂部。要修改在不同進程組中定義的變量,請選擇該變量行中的“箭頭”圖標:

這將導航到該進程組的Variables窗口:

變量權限

變量權限僅基於相應進程組上配置的權限。

例如,如果用戶無權查看進程組,則無法查看該進程組的“變量”窗口:

如果用戶有權查看流程組但無權訪問“修改流程組”,則可以查看變量但不能修改變量。

有關如何管理組件權限的信息,請參閱 “系統管理員指南”中的“ 訪問策略”部分。

引用控制器服務

除了Referencing Processors之外,Variables窗口還顯示Referencing Controller Services:

選擇控制器服務的名稱將導航到“配置”窗口中的該控制器服務:

未經授權的引用組件

如果未向引用變量的組件提供“查看”或“修改”權限,則組件的UUID將顯示在“變量”窗口中:

在上面的示例中,變量property1由“user1”無法查看的處理器引用:

通過nifi.properties引用自定義屬性

識別一組或多組鍵/值對,並將它們提供給系統管理員。

添加新的自定義屬性後,請確保使用自定義屬性位置更新nifi.properties文件中的nifi.variable.registry.properties 字段。

  必須重新啓動NiFi才能獲取這些更新。

有關詳細信息,請參閱“系統管理員指南”中的“ 自定義屬性”部分。

控制器服務

Controller Services是共享服務,可供報告任務,處理器和其他服務使用,以用於配置或任務執行。

  控制器級別定義的控制器服務僅限於報告任務和其中定義的其他服務。必須在將要使用它們的根進程組或子進程組的配置中定義供數據流中的處理器使用的控制器服務。
  如果您的NiFi實例受到保護,您查看和添加Controller Services的能力取決於分配給您的權限。如果您無權訪問一個或多個Controller Services,則無法在UI中查看或訪問它。可以在全局或特定於Controller Service的基礎上分配訪問權限(有關更多信息,請參閱訪問具有多租戶授權的UI)。

爲報告任務添加控制器服務

要爲報告任務添加控制器服務,請從全局菜單中選擇控制器設置。

這將顯示“NiFi設置”窗口。該窗口有四個選項卡:常規,報告任務控制器服務,報告任務和註冊表客戶端。“常規”選項卡提供實例的總體最大線程數的設置。

“常規”選項卡右側是“報告任務控制器服務”選項卡。在此選項卡中,DFM可以單擊右上角的+按鈕以創建新的Controller Service。

“添加控制器服務”窗口打開。此窗口類似於“添加處理器”窗口。它提供了右側可用的Controller Services列表和標籤雲,顯示了左側用於Controller Services的最常見類別標籤。DFM可以單擊標籤雲中的任何標籤,以便將Controller Services列表縮小到適合所需類別的那些。DFM還可以使用窗口右上角的“過濾器”字段來搜索所需的“控制器服務”,或使用左上角的“源”下拉列表按創建它們的組篩選列表。從列表中選擇Controller Service後,DFM可以在下面看到該服務的描述。選擇所需的控制器服務,然後單擊“添加”,或者只需雙擊要添加的服務名稱即可。

添加控制器服務後,可以通過單擊Configure最右側列中的按鈕進行配置。此列中的其他按鈕包括EnableRemoveAccess Policies

您可以通過單擊左側列中的UsageAlerts按鈕來獲取有關Controller Services的信息。

當DFM單擊該Configure按鈕時,將打開“配置控制器服務”窗口。它有三個選項卡:設置,屬性和註釋。此窗口類似於“配置處理器”窗口。“設置”選項卡爲DFM提供了一個位置,以便爲Controller Service提供唯一的名稱(如果需要)。它還列出了服務的UUID,類型,捆綁和支持信息,並提供了引用該服務的其他組件(報告任務或其他控制器服務)的列表。

“屬性”選項卡列出了適用於特定控制器服務的各種屬性。與配置處理器一樣,DFM可以將鼠標懸停在問號圖標上以查看有關每個屬性的更多信息。

“註釋”選項卡只是一個開放文本字段,其中DFM可能包含有關服務的註釋。配置Controller Service後,單擊Apply按鈕以應用配置並關閉窗口,或單擊Cancel按鈕取消更改並關閉窗口。

爲數據流添加控制器服務

要爲數據流添加控制器服務,可以右鍵單擊“進程組”並選擇“配置”,或單擊“操作選項板”中的“配置”。

在畫布上單擊“操作選項板”中的“配置”時,如果未在畫布上選擇任何內容,則爲根進程組添加控制器服務。然後,該控制器服務可用於數據流中的所有嵌套進程組。在畫布上選擇“進程組”,然後從“操作選項板”或“進程組”上下文菜單中單擊“配置”時,該服務將可用於該進程組及以下中定義的所有處理器和控制器服務。

 

使用以下步驟添加Controller服務:

  1. 單擊“配置”,可以從“操作選項板”或“進程組”上下文菜單中單擊“配置”。這將顯示進程組“配置”窗口。該窗口有兩個選項卡:常規和控制器服務。“常規”選項卡用於與有關進程組的常規信息有關的設置。例如,如果配置根進程組,DFM可以爲整個數據流提供唯一的名稱,以及描述流的註釋(注意:此信息對於遠程連接到此實例的任何其他NiFi實例是可見的(使用遠程進程組,又名,站點到站點))。

  2. 從Process Group Configuration頁面中,選擇Controller Services選項卡。

  3. 單擊+按鈕以顯示“添加控制器服務”對話框。

  4. 選擇所需的Controller Service,然後單擊“添加”。

  5. 單擊配置右側列中的配置圖標(),執行任何必要的Controller Service配置任務。

啓用/禁用控制器服務

配置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提供了一個位置,以便爲報告任務提供唯一的名稱(如果需要)。它還列出了任務的UUID,Type和Bundle信息,並提供了任務的Scheduling Strategy和Run Schedule的設置(類似於處理器中的相同設置)。DFM可以將鼠標懸停在問號圖標上以查看有關每個設置的更多信息。

“屬性”選項卡列出了可爲任務配置的各種屬性。DFM可以將鼠標懸停在問號圖標上以查看有關每個屬性的更多信息。

“註釋”選項卡只是一個開放文本字段,其中DFM可能包含有關任務的註釋。配置報告任務後,單擊Apply按鈕以應用配置並關閉窗口,或單擊Cancel按鈕取消更改並關閉窗口。

如果要運行“報告任務”,請單擊Start按鈕(開始按鈕)。

連接組件

將處理器和其他組件添加到畫布並進行配置後,下一步是將它們相互連接,以便NiFi知道在處理完每個FlowFile後如何處理。這是通過在每個組件之間創建連接來實現的。當用戶將鼠標懸停在組件的中心上時,會出現一個新的連接圖標( 連接泡泡 ):

用戶將連接氣泡從一個組件拖動到另一個組件,直到第二個組件突出顯示。當用戶釋放鼠標時,會出現“創建連接”對話框。該對話框包含兩個選項卡:“詳細信息”和“設置”。它們將在下面詳細討論。請注意,可以繪製連接,以便它在同一處理器上循環。如果DFM希望處理器在失敗關係時嘗試重新處理FlowFiles,這將非常有用。要創建這種類型的循環連接,只需將連接氣泡拖離,然後再返回到同一處理器,直到它突出顯示。然後釋放鼠標,出現相同的“創建連接”對話框。

細節標籤

“創建連接”對話框的“詳細信息”選項卡提供有關源和目標組件的信息,包括組件名稱,組件類型和組件所在的進程組:

此外,此選項卡還提供了選擇此Connection中應包含哪些關係的功能。必須至少選擇一個關係。如果只有一個關係可用,則會自動選擇它。

  如果使用相同的關係添加多個Connections,則將自動“克隆”路由到該關係的任何FlowFile,並將副本發送到每個Connections。

設置

“設置”選項卡提供配置連接名稱,FlowFile到期,背壓閾值,負載平衡策略和優先級的功能:

連接名稱是可選的。如果未指定,則爲Connection顯示的名稱將是Connection的活動關係的名稱。

FlowFile到期

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提供以下負載平衡策略:

  • Do not load balance:不要在羣集中的節點之間平衡FlowFile。這是默認值。

  • Partition by attribute:根據用戶指定的FlowFile屬性的值確定將給定FlowFile發送到哪個節點。具有相同Attribute值的所有FlowFile將發送到集羣中的同一節點。如果目標節點與羣集斷開連接或無法通信,則數據不會故障轉移到另一個節點。數據將排隊,等待節點再次可用。此外,如果節點加入或離開集羣需要重新平衡數據,則應用一致性散列以避免必須重新分發所有數據。

  • Round robin:FlowFiles將以循環方式分發到集羣中的節點。如果節點與羣集斷開連接或無法與節點通信,則排隊等待該節點的數據將自動重新分發到另一個節點。

  • Single node:所有FlowFiles將發送到集羣中的單個節點。它們被髮送到哪個節點是不可配置的。如果節點與羣集斷開連接或無法與節點通信,則排隊等待該節點的數據將保持排隊,直到該節點再次可用。

  除UI設置外,還有與負載平衡相關的羣集節點屬性,還必須在nifi.properties中進行配置。
  NiFi會在重新啓動時持久保存羣集中的節點。這可以防止在所有節點都已連接之前重新分配數據。如果羣集已關閉且無意重新啓動節點,則用戶有責任通過UI中的“羣集”對話框從羣集中刪除該節點(有關詳細信息,請參閱管理節點)。

負載平衡壓縮

選擇負載平衡策略後,用戶可以配置在羣集中的節點之間傳輸時是否應壓縮數據。

可以使用以下壓縮選項:

  • Do not compress:FlowFiles不會被壓縮。這是默認值。

  • Compress attributes only:將壓縮FlowFile屬性,但不會壓縮FlowFile內容。

  • Compress attributes and content:將壓縮FlowFile屬性和內容。

負載平衡指示器

爲連接實施負載平衡策略後,連接負載平衡圖標上將顯示負載平衡指示符():

將鼠標懸停在該圖標上將顯示連接的負載平衡策略和壓縮配置。此狀態下的圖標還表示連接中的所有數據都已在羣集中分佈。

當在羣集中的節點之間主動傳輸數據時,負載平衡指示器將更改方向和顏色:

羣集連接摘要

要查看在羣集節點之間分配數據的位置,請從“全局菜單”中選擇“摘要”。然後選擇“連接”選項卡和源的“查看連接詳細信息”圖標:

這將打開“羣集連接摘要”對話框,該對話框顯示羣集中每個節點上的數據:

優先級

選項卡的右側提供了對隊列中數據進行優先級排序的功能,以便首先處理更高優先級的數據。優先級可以從頂部('可用的優先級排序器')​​拖動到底部('選擇的優先級排序器')​​。可以選擇多個優先級排序器。位於“所選優先級”列表頂部的優先級排序是最高優先級。如果兩個FlowFiles根據此優先級排序器具有相同的值,則第二個優先級排序器將確定首先處理哪個FlowFile,依此類推。如果不再需要優先級排序器,則可以將其從“選定的優先級排序器”列表拖動到“可用的優先級排序器”列表。

可以使用以下優先順序:

  • FirstInFirstOutPrioritizer:給定兩個FlowFiles,首先處理首先到達連接的FlowFiles。

  • NewestFlowFileFirstPrioritizer:給定兩個FlowFiles,將首先處理數據流中最新的FlowFiles。

  • OldestFlowFileFirstPrioritizer:給定兩個FlowFiles,將首先處理數據流中最舊的FlowFiles。'這是在沒有選擇優先級的情況下使用的默認方案'。

  • PriorityAttributePrioritizer:給定兩個FlowFiles,將提取名爲“priority”的屬性。將首先處理具有最低優先級值的那個。

    • 請注意,應使用UpdateAttribute處理器在FlowFiles到達具有此優先級設置的連接之前將“priority”屬性添加到FlowFiles。

    • 如果只有一個具有該屬性,它將首先出現。

    • “priority”屬性的值可以是字母數字,其中“a”將出現在“z”之前,“1”出現在“9”之前

    • 如果“priority”屬性無法解析爲long,則將使用unicode字符串排序。例如:“99”和“100”將被排序,因此帶有“99”的流文件首先出現,但“A-99”和“A-100”將排序,因此帶有“A-100”的流文件首先出現。

  負載平衡策略配置,連接有除了本地隊列每個節點的隊列。優先級排序器將獨立地對每個隊列中的數據進行排序。

更改配置和上下文菜單選項

在兩個組件之間建立連接之後,可以更改連接的配置,並且可以將連接移動到新目的地; 但是,必須先停止連接任一側的處理器,然後才能進行配置或目標更改。

要更改連接的配置或以其他方式與連接交互,請右鍵單擊連接以打開連接上下文菜單。

可以使用以下選項:

  • Configure:此選項允許用戶更改連接的配置。

  • View status history:此選項打開連接統計信息隨時間的圖形表示。

  • List queue:此選項列出可能正在等待處理的FlowFiles隊列。

  • Go to source:如果畫布上連接的源組件和目標組件之間有很長的距離,則此選項很有用。通過單擊此選項,畫布視圖將跳轉到連接源。

  • Go to destination:與“轉到源”選項類似,此選項將視圖更改爲畫布上的目標組件,如果兩個連接的組件之間存在較長距離,則此選項可能很有用。

  • Bring to front:如果其他東西(例如另一個連接)與其重疊,則此選項將連接帶到畫布的前面。

  • Empty queue:此選項允許DFM清除可能正在等待處理的FlowFiles隊列。當DFM不關心從隊列中刪除數據時,此選項在測試期間特別有用。選擇此選項後,用戶必須確認是否要刪除隊列中的數據。

  • Delete:此選項允許DFM刪除兩個組件之間的連接。請注意,必須先停止連接兩側的組件,並且連接必須爲空才能刪除。

彎曲連接

要向現有連接添加彎曲點(或彎頭),只需雙擊要彎曲點所在位置的連接即可。然後,您可以使用鼠標抓住彎曲點並拖動它,以便以所需的方式彎曲連接。您可以根據需要添加任意數量的彎曲點。您還可以使用鼠標將連接上的標籤拖動並移動到任何現有折彎點。要刪除折彎點,只需再次雙擊即可。

處理器驗證

在嘗試啓動處理器之前,確保處理器的配置有效非常重要。狀態指示器顯示在處理器的左上角。如果處理器無效,指示器將顯示黃色警告指示器,並帶有感嘆號,表示存在問題:

在這種情況下,使用鼠標懸停在指示器圖標上將提供工具提示,顯示處理器的所有驗證錯誤。一旦解決了所有驗證錯誤,狀態指示器將變爲Stop圖標,表示處理器有效並準備啓動但當前未運行:

站點到站點 (Site-to-Site)

當從一個NiFi實例向另一個實例發送數據時,可以使用許多不同的協議。但是,首選協議是NiFi站點到站點協議。站點到站點可以輕鬆安全高效地將數據傳輸到一個NiFi實例中的節點或從一個NiFi實例中的節點或數據生成應用程序傳輸到另一個NiFi實例或其他消費應用程序中的節點。

使用站點到站點提供以下好處:

  • 易於配置 (Easy to configure)

    • 輸入遠程NiFi實例的URL後,將自動發現可用端口(端點)並在下拉列表中提供

  • 安全 (Secure)

    • 站點到站點可選地使用證書來加密數據並提供身份驗證和授權。可以將每個端口配置爲僅允許特定用戶,並且只有那些用戶才能看到該端口甚至存在。有關配置證書的信息,請參閱 “ 系統管理員指南”的“ 安全配置”部分 。

  • 可擴展 (Scalable)

    • 隨着遠程羣集中的節點發生更改,將自動檢測這些更改,並在羣集中的所有節點上擴展數據。

  • 高效(Efficient)

    • 站點到站點允許一次發送批量的FlowFiles,以避免建立連接和在對等點之間進行多次往返請求的開銷。

  • 可靠(Reliable)

    • 校驗和由發送方和接收方自動生成,並在數據傳輸後進行比較,以確保沒有發生損壞。如果校驗和不匹配,則只會取消交易並再次嘗試。

  • 自動加載平衡(Automatically load balanced)

    • 當節點聯機或退出遠程羣集,或節點的負載變得更重或更輕時,將自動調整定向到該節點的數據量。

  • FlowFiles維護屬性  (FlowFiles maintain attributes)

    • 當通過此協議傳輸FlowFile時,所有FlowFile的屬性都會隨之自動傳輸。這在許多情況下是非常有利的,因爲由一個NiFi實例確定的所有上下文和豐富隨數據傳播,使得數據易於路由並且允許用戶容易地檢查數據。

  • 適應性強 (Adaptable)

    • 隨着新技術和新想法的出現,處理站點到站點通信的協議能夠隨之改變。當與遠程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身份驗證。

本地網絡接口 (Local Network 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實例上啓用和配置站點到站點的信息,請參閱 “ 系統管理員指南”的“ 站點到站點屬性”部分 。

有關如何配置訪問策略的信息,請參閱 “ 系統管理員指南”的“ 訪問屬性”部分 。

示例Dataflow 

本節介紹了構建數據流所需的步驟。現在,把它們放在一起。以下示例數據流僅包含兩個處理器:GenerateFlowFile和LogAttribute。這些處理器通常用於測試,但它們也可用於構建快速流程以用於演示目的,並查看NiFi的運行情況。

將GenerateFlowFile和LogAttribute處理器拖到畫布並連接它們(使用上面提供的指南)後,按如下所示進行配置:

  • 生成FlowFile

    • 在“調度”選項卡上,將“運行計劃”設置爲:5秒。請注意,GenerateFlowFile處理器可以非常快速地創建許多FlowFiles; 這就是爲什麼設置運行計劃很重要,這樣這個流程就不會讓NiFi運行的系統不堪重負。

    • 在“屬性”選項卡上,將“文件大小”設置爲:10 KB

  • 日誌屬性(Log Attribute)

    • 在“設置”選項卡上的“自動終止關係”下,選中“成功”旁邊的複選框。這將在此處理器成功處理後終止FlowFiles。

    • 同樣在“設置”選項卡上,將“公告”級別設置爲“信息”。這樣,當數據流運行時,此處理器將顯示公告圖標(請參閱處理器剖析),用戶可以使用鼠標將鼠標懸停在其上以查看處理器正在記錄的屬性。

數據流應如下所示:

現在請參閱以下有關如何啓動和停止數據流的部分。數據流運行時,請務必記下每個處理器正面顯示的統計信息(請參閱處理器剖析)。

DataFlow的命令和控制

將組件添加到NiFi畫布時,它處於“已停止”狀態。爲了使組件被觸發,必須啓動組件。一旦啓動,組件可以隨時停止。從“已停止”狀態,可以配置,啓動或禁用該組件。

啓動組件

要啓動組件,必須滿足以下條件:

可以通過選擇要啓動的所有組件然後單擊 “操作選項板”中的Start按鈕( 開始)或右鍵單擊單個組件並從上下文菜單中選擇“啓動”來啓動組件。

如果啓動進程組,則將啓動該進程組中的所有組件(包括子進程組),但無效或禁用的組件除外。

一旦啓動,處理器的狀態指示器將變爲播放符號( 跑 )。

停止組件 (Stopping a Component)

組件可以在運行時停止。通過右鍵單擊組件並從上下文菜單中單擊“停止”,或者通過選擇組件並單擊 “操作選項板”中的Stop按鈕( 停止)來停止組件。

如果進程組已停止,則將停止進程組(包括子進程組)中的所有組件。

停止後,組件的狀態指示器將更改爲停止符號( 停止 )。

停止組件不會中斷其當前正在運行的任務。相反,它會停止安排要執行的新任務。活動任務的數量顯示在處理器的右上角(有關 詳細信息,請參閱處理器剖析)。

啓用/禁用組件 (Enabling/Disabling a Component)

啓用組件後,即可啓動它。例如,用戶可以選擇在組件仍然是正在組裝的數據流的一部分時禁用組件。通常,如果不打算運行組件,則禁用該組件,而不是將其置於“已停止”狀態。這有助於區分有意未運行的組件和可能已暫時停止的組件(例如,更改組件的配置),並且無意中從未重新啓動。

當需要重新啓用組件時,可以通過選擇組件並單擊 “操作選項板”中的Enable按鈕( 啓用)來啓用它。僅當禁用所選組件時,此選項纔可用。或者,可以通過選中“處理器配置”對話框的“設置”選項卡中的“已啓用”選項旁邊的複選框或端口的配置對話框來啓用組件。

啓用後,組件的狀態指示器將更改爲Invalid( 無效 )或Stopped( 停止 ),具體取決於組件是否有效。

然後,通過選擇組件並單擊“ 操作選項板”中的Disable按鈕( 禁用),或清除“處理器配置”對話框的“設置”選項卡中的“已啓用”選項旁邊的複選框或端口的配置對話框,可以禁用組件。

只能啓用和禁用端口和處理器。

遠程進程組傳輸(Remote Process Group Transmission)

遠程進程組提供了一種向遠程NiFi實例發送數據或從中檢索數據的機制。將遠程進程組(RPG)添加到畫布時,會添加“禁用傳輸”,如傳輸禁用 左上角的圖標( )所示。當傳輸被禁用時,可以通過右鍵單擊RPG並單擊“啓用傳輸”菜單項來啓用它。這將導致有連接的所有端口開始傳輸數據。這將導致狀態指示燈變爲Transmission Enabled圖標( 傳輸已啓用 )。

如果與遠程進程組通信時出現問題,則警告 可能會在左上角顯示警告指示符( )。使用鼠標將鼠標懸停在此警告指示器上將提供有關該問題的更多信息。

ndividual Port Transmission

有時,DFM可能希望僅爲遠程進程組中的特定端口啓用或禁用傳輸。這可以通過右鍵單擊遠程進程組並選擇“遠程端口”菜單項來完成。這提供了一個配置對話框,可以從中配置每個端口:

左側列出了NiFi遠程實例允許發送數據的所有輸入端口。右側列出了此實例能夠從中提取數據的所有輸出端口。如果遠程實例正在使用安全通信(NiFi實例的URL以https://,而不是http://),則不會顯示遠程實例未對此實例可用的任何端口。

  如果此對話框中未顯示預期顯示的端口,請確保實例具有適當的權限,並且遠程進程組的流是最新的。可以通過關閉“端口配置”對話框並查看“遠程進程組”的右下角來檢查。顯示上次刷新流的日期。如果流程似乎已過時,可以通過右鍵單擊遠程進程組並選擇“刷新流程”來更新它。(有關更多信息,請參閱遠程過程組剖析)。

每個端口都顯示端口名稱,後跟其描述,當前配置的併發任務數,以及是否將壓縮發送到此端口的數據。此信息的左側是用於打開或關閉端口的開關。那些沒有連接到它們的連接的端口顯示爲灰色:

on/off 開關提供了一種機制,可以獨立地啓用和禁用遠程過程組中每個端口的傳輸。可以通過單擊編輯 開/關開關下方的鉛筆圖標()來配置已連接但當前未傳輸的端口 。單擊此圖標將允許DFM更改併發任務的數量,以及在向此端口傳輸數據時是否應使用壓縮。

NiFi提供各種機制來繞過數據流。該NiFi用戶界面部分描述了在NiFi畫布中導航的各種方法; 但是,一旦畫布上存在流,就會有其他方法從一個組件到另一個組件。當流中存在多個流程組時,麪包屑會顯示在屏幕底部,提供在它們之間導航的方法。此外,要進入當前在畫布上可見的進程組,只需雙擊它,從而“向下鑽取”它。Connections還提供了一種在流程中從一個位置跳轉到另一個位置的方法。右鍵單擊連接並選擇“轉到源”或“轉到目標”以跳轉到連接的一端或另一端。這在大型複雜數據流中非常有用,其中連接線可能很長並且跨越畫布的大部分區域。最後,所有組件都提供在流程中向前或向後跳躍的能力。右鍵單擊任何組件(例如,處理器,進程組,端口等),然後選擇“上游連接”或“下游連接”。將打開一個對話框窗口,顯示用戶可以跳轉到的可用上游或下游連接。當嘗試沿向後方向跟蹤數據流時,這尤其有用。通常很容易從頭到尾跟蹤數據流的路徑,向下鑽取到嵌套的流程組; 但是,在另一個方向上跟蹤數據流可能更加困難。將打開一個對話框窗口,顯示用戶可以跳轉到的可用上游或下游連接。當嘗試沿向後方向跟蹤數據流時,這尤其有用。通常很容易從頭到尾跟蹤數據流的路徑,向下鑽取到嵌套的流程組; 但是,在另一個方向上跟蹤數據流可能更加困難。將打開一個對話框窗口,顯示用戶可以跳轉到的可用上游或下游連接。當嘗試沿向後方向跟蹤數據流時,這尤其有用。通常很容易從頭到尾跟蹤數據流的路徑,向下鑽取到嵌套的流程組; 但是,在另一個方向上跟蹤數據流可能更加困難。

組件鏈接

超鏈接可用於直接導航到NiFi畫布上的組件。在配置多租戶授權時,這尤其有用。例如,可以將URL提供給用戶以將其定向到他們具有特權的特定進程組。

NiFI實例的默認URL是http://<hostname>:8080/nifi指向根進程組。在畫布上選擇組件後,將使用表單中組件的進程組ID和組件ID更新URL http://<hostname>:8080/nifi/?processGroupId=<UUID>&componentIds=<UUIDs>;。在以下屏幕截圖中,進程組PG1中的GenerateFlowFile處理器是所選組件:

 

 

 

  支持鏈接到畫布上的多個組件,但限制URL的長度不能超過2000個字符。

組件對齊

NiFi畫布上的組件可以對齊,以更精確地排列數據流。爲此,首先選擇要對齊的所有組件。然後右鍵單擊以查看上下文菜單,並根據所需結果選擇“垂直對齊”或“水平對齊”。

垂直對齊

以下是在畫布上垂直對齊組件的示例。選中/突出顯示所有組件後,右鍵單擊:

並選擇“垂直對齊”以獲得以下結果:

水平對齊

以下是在畫布上水平對齊組件的示例。選中/突出顯示所有組件後,右鍵單擊:

並選擇“水平對齊”以獲得以下結果:

監控DataFlow

NiFi提供有關DataFlow的大量信息,以便監控其健康狀況。狀態欄提供有關整體系統運行狀況的信息(請參閱NiFi用戶界面)。處理器,進程組和遠程進程組提供有關其操作的細粒度詳細信息。連接和進程組提供有關其隊列中數據量的信息。摘要頁面以表格格式提供有關畫布上所有組件的信息,還提供包括磁盤使用情況,CPU利用率以及Java堆和垃圾收集信息的系統診斷。在羣集環境中,此信息可以按節點使用,也可以作爲整個羣集中的聚合使用。我們將在下面探討每個監控工件。

處理器的剖析

NiFi提供有關畫布上每個處理器的大量信息。下圖顯示了處理器的解剖結構:

該圖像概述了以下元素:

  • 處理器類型(Processor Type):NiFi提供多種不同類型的處理器,以便執行各種任務。每種類型的處理器都旨在執行一項特定任務。處理器類型(在此示例中爲PutFile)描述了此處理器執行的任務。在這種情況下,處理器將FlowFile寫入磁盤 - 或者將FlowFile“放入”文件。

  • 公告指示器(Bulletin Indicator):當處理器記錄某個事件已發生時,它會生成一個公告,以通過用戶界面通知正在監控NiFi的人員。DFM能夠通過更新“處理器配置”對話框的“設置”選項卡中的“公告級別”字段來配置應在用戶界面中顯示的公告。默認值爲WARN,這意味着UI中僅顯示警告和錯誤。除非此處理器存在公告,否則此圖標不存在。當它出現時,用鼠標懸停在圖標上將提供一個工具提示,說明處理器和公告級別提供的消息。如果NiFi的實例是羣集的,它還將顯示發佈公告的節點。

  • 狀態指示燈(Status Indicator):顯示處理器的當前狀態。以下指標是可能的:

    • 運行 正在運行(Running):處理器當前正在運行。

    • 停止 已停止(Stopped):處理器有效並已啓用但未運行。

    • 無效 無效(Invalid):處理器已啓用但當前無效且無法啓動。將鼠標懸停在此圖標上將提供工具提示,指示處理器無效的原因。

    • 殘 已禁用(Disabled):處理器未運行,在啓用之前無法啓動。此狀態不表示處理器是否有效。

  • 處理器名稱(Processor Name):這是處理器的用戶定義名稱。默認情況下,Processor的名稱與Processor Type相同。在示例中,此值爲“Copy to /review”。

  • 活動任務( Active Tasks ):此處理器當前正在執行的任務數。此數字受“處理器配置”對話框的“計劃”選項卡中的“併發任務”設置的約束。在這裏,我們可以看到處理器當前正在執行一項任務。如果NiFi實例是羣集的,則此值表示當前正在羣集中的所有節點上執行的任務數。

  • 5分鐘統計(5-Minute Statistics):處理器以表格形式顯示幾種不同的統計數據。這些統計數據中的每一個都代表過去五分鐘內完成的工作量。如果NiFi實例是羣集的,則這些值表示在過去五分鐘內所有節點組合完成了多少工作。這些指標是:

    • In:處理器從其傳入Connections的隊列中提取的數據量。此值表示爲<count>(<size>),其中<count>是從隊列中提取的FlowFiles的數量,<size>是這些FlowFiles內容的總大小。在此示例中,處理器已從輸入隊列中提取了29個FlowFiles,總計14.16兆字節(MB)。

    • 讀/寫(Read/Write):處理器從磁盤讀取並寫入磁盤的FlowFile內容的總大小。這提供了有關此處理器所需的I / O性能的有用信息。某些處理器可能只讀取數據而不寫入任何內容,而某些處理器不會讀取數據但只會寫入數據。其他人既不會讀取也不會寫入數據,而某些處理器會讀取和寫入數據。在這個例子中,我們看到在過去的五分鐘內,這個處理器讀取了4.88 MB的FlowFile內容,並且寫了4.88 MB。這是我們所期望的,因爲這個處理器只是將FlowFile的內容複製到磁盤。但請注意,這與從輸入隊列中提取的數據量不同。這是因爲它從輸入隊列中提取的某些文件已經存在於輸出目錄中,並且處理器配置爲在發生這種情況時將FlowFiles路由到失敗。因此,對於那些已經存在於輸出目錄中的文件,數據既不會被讀取也不會被寫入磁盤。

    • Out:處理器已傳輸到其出站連接的數據量。這不包括處理器自行刪除的FlowFiles,也不包括路由到自動終止的連接的FlowFiles。與上面的“In”指標一樣,此值表示爲<count>(<size>),其中<count>是已傳輸到出站Connections的FlowFiles的數量,<size>是這些FlowFiles內容的總大小。在此示例中,所有關係都配置爲自動終止,因此不會報告任何FlowFiles已被轉出。

    • 任務/時間(Tasks/Time):此處理器在過去5分鐘內被觸發運行的次數,以及執行這些任務所花費的時間。時間格式爲<hour>:<minute>:<second>。請注意,所花費的時間可能超過五分鐘,因爲許多任務可以並行執行。例如,如果處理器計劃運行60個併發任務,並且每個任務都需要一秒鐘才能完成,則所有60個任務可能會在一秒鐘內完成。但是,在這種情況下,我們會看到時間指標顯示它需要60秒,而不是1秒。這個時間可以被認爲是“系統時間”,或換句話說,

過程組的剖析

進程組提供了一種機制,用於將組件組合到一個邏輯構造中,以便以更高級別更容易理解的方式組織DataFlow。下圖突出顯示了構成Process Group解剖結構的不同元素:

過程組由以下元素組成:

  • 名稱:這是進程組的用戶定義名稱。將進程組添加到畫布時,將設置此名稱。稍後可以通過右鍵單擊“進程組”並單擊“配置”菜單選項來更改名稱。在此示例中,進程組的名稱是“Process Group ABC”。

  • 公告指示器(Bulletin Indicator):當進程組的子組件發佈公告時,該公告也會傳播到組件的父進程組。當任何組件具有活動公告時,將顯示此指示符,允許用戶使用鼠標將鼠標懸停在圖標上以查看公告。

  • 活動任務:此進程組中組件當前正在執行的任務數。在這裏,我們可以看到Process Group當前正在執行兩項任務。如果NiFi實例是羣集的,則此值表示當前正在羣集中的所有節點上執行的任務數。

  • 統計信息:流程組提供有關過程組在過去5分鐘內處理的數據量以及當前在流程組中排隊的數據量的統計信息。以下元素包含流程組的“統計”部分:

    • 排隊:當前在進程組中排隊的FlowFiles數。此字段表示爲<count>(<size>),其中<count>是當前在Process Group中排隊的FlowFiles的數量,<size>是這些FlowFiles內容的總大小。在此示例中,Process Group當前有26個FlowFiles排隊,總大小爲12.7兆字節(MB)。

    • In:在過去5分鐘內通過其所有輸入端口傳輸到Process Group的FlowFiles數。此字段表示爲<count> / <size>→<ports>,其中<count>是過去5分鐘內進入Process Group的FlowFiles的數量,<size>是這些FlowFiles內容的總大小, <ports>是輸入端口的數量。在此示例中,8個FlowFiles已進入進程組,總大小爲800 KB,並且存在兩個輸入端口。

    • 讀/寫:進程組中的組件已從磁盤讀取並寫入磁盤的FlowFile內容的總大小。這提供了有關此Process Group所需的I / O性能的有用信息。在此示例中,我們看到在過去五分鐘內,此Process Group中的組件讀取了14.72 MB的FlowFile內容,並寫入了14.8 MB。

    • Out:在過去5分鐘內通過其輸出端口傳輸出Process Group的FlowFiles數。此字段表示爲<ports>→<count>(<size>),其中<ports>是輸出端口的數量,<count>是過去5分鐘內退出Process Group的FlowFiles的數量和<size >是FlowFiles內容的總大小。在此示例中,有三個輸出端口,16個FlowFiles已退出進程組,其總大小爲78.57 KB。

  • 組件計數:組件計數元素提供有關進程組中每種類型的組件數量的信息。以下提供了有關這些圖標及其含義的信息:

    • 傳輸有效 傳輸端口:當前配置爲將數據傳輸到遠程NiFi實例或從遠程NiFi實例提取數據的遠程進程組端口的數量。

    • 傳輸無效 非傳輸端口:當前連接到此進程組中的組件但當前已禁用其傳輸的遠程進程組端口的數量。

    • 運行 運行組件:當前在此進程組中運行的處理器,輸入端口和輸出端口的數量。

    • 停止組件 已停止的組件:當前未運行但有效且已啓用的處理器,輸入端口和輸出端口的數量。這些組件已準備好啓動。

    • 無效的組件 無效組件:已啓用但當前未處於有效狀態的處理器,輸入端口和輸出端口的數量。這可能是由於配置錯誤或缺少關係造成的。

    • 殘疾人組件 已禁用組件:當前已禁用的處理器,輸入端口和輸出端口的數量。這些組件可能有效,也可能無效。如果啓動了進程組,則這些組件不會導致任何錯誤,但不會啓動。

  • 版本狀態計數:版本狀態計數元素提供有關進程組中有多少版本化進程組的信息。有關更多信息,請參閱版本狀態

  • 註釋:將流程組添加到畫布時,將爲用戶提供指定註釋的選項,以便提供有關流程組的信息。稍後可以通過右鍵單擊“進程組”並單擊“配置”菜單選項來更改註釋。

遠程過程組的剖析

創建DataFlow時,通常需要將數據從一個NiFi實例傳輸到另一個實例。在這種情況下,NiFi的遠程實例可以被視爲進程組。因此,NiFi提供了遠程過程組的概念。從用戶界面,遠程進程組看起來類似於進程組。但是,不是顯示有關遠程進程組的內部工作和狀態的信息(例如隊列大小),而是呈現有關遠程進程組的信息與此NiFi實例與遠程實例之間發生的交互有關。

上圖顯示了組成遠程進程組的不同元素。在這裏,我們提供有關所提供信息的圖標和詳細信息的說明。

  • 傳輸狀態:傳輸狀態指示當前是否啓用此NiFi實例與遠程實例之間的數據傳輸。傳輸有效 如果任何輸入端口或輸出端口當前配置爲傳輸,則顯示的圖標將是Transmission Enabled圖標( )如果傳輸無效 當前連接的所有輸入端口和輸出端口都已停止,則傳輸已禁用圖標( )。

  • 遠程實例名稱:這是遠程實例報告的NiFi實例的名稱。首次創建遠程進程組時,在獲取此信息之前,此處將顯示遠程實例的URL。

  • 遠程實例URL:這是遠程進程組指向的遠程實例的URL。將遠程進程組添加到畫布並且無法更改時,將輸入此URL。

  • 安全指示器:此圖標指示與遠程NiFi實例的通信是否安全。如果與遠程實例的通信是安全的,則將通過“鎖定”圖標(安全 )指示 。如果通信不安全,將通過“未鎖定”圖標指示( 不安全 )。如果通信是安全的,則在遠程實例的管理員授予訪問權限之前,此NiFi實例將無法與遠程實例通信。每當將遠程進程組添加到畫布時,這將自動發起請求,以便在遠程實例上創建此NiFi實例的用戶。在遠程實例上的管理員將用戶添加到系統並向用戶添加“NiFi”角色之前,此實例將無法與遠程實例通信。如果通信不安全,遠程進程組可以從任何人接收數據,並且在NiFi實例之間傳輸數據時不會對數據進行加密。

  • 5分鐘統計信息:顯示遠程進程組的兩個統計信息:已發送和已接收。這兩種格式都是<count>(<size>)格式,其中<count>是在前五分鐘內發送或接收的FlowFiles的數量,<size>是這些FlowFiles內容的總大小。

  • 註釋:爲遠程進程組提供的註釋不是由此NiFi的用戶添加的註釋,而是由遠程實例的管理員添加的註釋。這些評論表明了NiFi實例的整體目的。

  • 上次刷新時間:從遠程實例中提取並在用戶界面中的遠程進程組上呈現的信息會在後臺定期刷新。此元素指示最後一次刷新的時間,或者如果信息在相當長的時間內未刷新,則該值將更改爲指示遠程流不是最新的。通過右鍵單擊遠程進程組並選擇“刷新流程”菜單項,可以觸發NiFi以啓動刷新此信息。

隊列交互

必要時,可以查看連接中排隊的FlowFiles。隊列列表通過List queueConnection的上下文菜單打開。該列表將根據配置的優先級返回活動隊列中的前100個FlowFiles。即使源和目標正在運行,也可以執行列表。

此外,單擊最左側列中的Details按鈕(細節)可以查看列表中Flowfile的詳細信息。從這裏,可以使用FlowFile詳細信息和屬性以及用於下載或查看內容的按鈕。僅在nifi.content.viewer.url已配置內容時才能查看內容。如果Connection的源或目標正在運行,則所需的FlowFile可能不再位於活動隊列中。

必要時,還可以刪除連接中排隊的FlowFiles。通過Empty queueConnection的上下文菜單啓動FlowFiles的刪除。如果源和目標正在運行,也可以執行此操作。

摘要頁面

雖然NiFi畫布對於瞭解如何佈置配置的DataFlow非常有用,但在嘗試辨別系統狀態時,此視圖並不總是最佳的。爲了幫助用戶瞭解DataFlow在更高級別的運行方式,NiFi提供了“摘要”頁面。此頁面位於用戶界面右上角的“全局菜單”中。有關此工具欄位置的詳細信息,請參閱NiFi用戶界面部分。

通過從全局菜單中選擇摘要來打開摘要頁面。這將打開“摘要”表對話框:

此對話框提供有關畫布上每個組件的大量信息。下面,我們在對話框中註釋了不同的元素,以便更容易地討論對話框。

“摘要”頁面主要由一個表組成,該表提供有關畫布上每個組件的信息。此表上方是一組五個選項卡,可用於查看不同類型的組件。表中提供的信息與爲畫布上的每個組件提供的信息相同。可以通過單擊列的標題對錶中的每個列進行排序。有關詳細上顯示的類型的信息,請參見部分 的處理器的解剖學一個過程組的解剖學,和一個遠程過程組的解剖學的上方。

“摘要”頁面還包含以下元素:

  • 公告指示器(Bulletin Indicator):與整個用戶界面中的其他位置一樣,當此圖標存在時,將鼠標懸停在圖標上將提供有關生成的公告的信息,包括消息,嚴重性級別,公告生成的時間以及(在集羣環境中)生成公告的節點。與“摘要”表中的所有列一樣,可以通過單擊標題對顯示公告的列進行排序,以便所有當前存在的公告顯示在列表頂部。

  • 詳細信息 (Details):單擊“詳細信息”圖標將爲用戶提供組件的詳細信息。此對話框與用戶右鍵單擊組件並選擇“查看配置”菜單項時提供的對話框相同。

  • 轉到(Go To):單擊此按鈕將關閉“摘要”頁面,並將用戶直接帶到NiFi畫布上的組件。這可能會更改用戶當前所在的進程組。如果已在新的瀏覽器選項卡或窗口中打開“摘要”頁面(通過單擊“彈出”按鈕,如下所述),則此圖標不可用。

  • 狀態歷史記錄(Status History):單擊“狀態歷史記錄”圖標將打開一個新對話框,其中顯示爲此組件呈現的統計信息的歷史視圖。有關更多信息,請參閱組件的歷史統計信息部分。

  • 刷新(Refresh):該Refresh按鈕允許用戶刷新顯示的信息,而無需關閉對話框並再次打開它。上次刷新信息的時間顯示在Refresh按鈕右側。頁面上的信息不會自動刷新。

  • 過濾器(Filter):Filter元素允許用戶通過鍵入全部或部分條件(例如“處理器類型”或“處理器名稱”)來過濾“摘要”表的內容。可用的過濾器類型根據所選選項卡而不同。例如,如果查看“處理器”選項卡,則用戶可以按名稱或類型進行過濾。查看“連接”選項卡時,用戶可以按源,名稱或目標名稱進行篩選。更改文本框的內容時,將自動應用過濾器。文本框下方是表中表中有多少條目與過濾器匹配以及表中存在多少條目的指示符。

  • 彈出(Pop-Out):監視流時,能夠在單獨的瀏覽器選項卡或窗口中打開摘要表是有幫助的。按鈕旁邊的“彈出”按鈕Close將導致在新的瀏覽器選項卡或窗口中打開整個“摘要”對話框(具體取決於瀏覽器的配置)。頁面“彈出”後,對話框將在原始瀏覽器選項卡/窗口中關閉。在新選項卡/窗口中,“彈出”按鈕和“轉到”按鈕將不再可用。

  • 系統診斷(System Diagnostics):“系統診斷”窗口提供有關係統在系統資源利用率方面的執行情況的信息。雖然這主要適用於管理員,但在此視圖中提供了它,因爲它確實提供了系統摘要。此對話框顯示CPU利用率,磁盤空閒程度以及特定於Java的度量標準(如內存大小和利用率)以及垃圾收集信息等信息。

組件的歷史統計 (Historical Statistics of a Component)

雖然“摘要”表和畫布顯示了與過去五分鐘內組件性能相關的數字統計信息,但查看歷史統計信息通常也很有用。通過右鍵單擊組件並選擇“狀態歷史記錄”菜單選項或單擊“摘要”頁面中的“狀態歷史記錄”( 有關詳細信息,請參閱摘要頁面),可以獲得此信息。

存儲的歷史信息量可在NiFi屬性中配置,但默認爲24 hours。有關特定配置信息,請參閱“ 系統管理員指南”的“組件狀態存儲庫。打開“狀態歷史記錄”對話框時,它會提供歷史統計信息的圖表:

對話框的左側提供有關統計信息所用組件的信息,以及繪製統計信息的文本表示。左側提供以下信息:

  • Id:正在顯示統計信息的組件的ID。

  • Group ID:組件所在的進程組的ID。

  • Name:要顯示統計信息的組件的名稱。

  • Component-Specific Entries:顯示每種不同類型組件的信息。例如,對於處理器,將顯示處理器的類型。對於Connection,將顯示源和目標名稱和ID。

  • Start:圖表上顯示的最早時間。

  • End:圖表上顯示的最新時間。

  • Min/Max/Mean:顯示最小值,最大值和平均值(算術平均值或平均值)。如果選擇了任何時間範圍,這些值僅基於所選時間範圍。如果對此NiFi實例進行聚類,則會爲整個羣集以及每個單獨節點顯示這些值。在羣集環境中,每個節點以不同的顏色顯示。這也用作圖形的圖例,顯示圖形中顯示的每個節點的顏色。將鼠標懸停在羣集上或圖例中的其中一個節點上也會使相應的節點在圖形中變爲粗體。

對話框的右側提供了下表中要呈現的不同類型度量標準的下拉列表。頂部圖形較大,以便提供更容易閱讀的信息呈現。在該圖的右下角是一個小手柄( 調整 ),可以拖動它來調整圖形的大小。也可以拖動對話框的空白區域以移動整個對話框。

底部圖表更短,並提供選擇時間範圍的能力。在此處選擇時間範圍將使頂部圖形僅顯示所選的時間範圍,但是以更詳細的方式顯示。此外,這將導致重新計算左側的最小值/最大值/平均值。通過在圖形上拖動矩形創建選擇後,雙擊所選部分將使選擇在垂直方向上完全展開(即,它將選擇此時間範圍內的所有值)。單擊底部圖形而不拖動將刪除選擇。

版本化DataFlow ( Versioning a DataFlow )

當NiFi連接到NiFi註冊表時,可以在進程組級別對數據流進行版本控制。有關NiFi Registry使用和配置的更多信息,請參閱https://nifi.apache.org/docs/nifi-registry-docs/index.html上的文檔。

連接到NiFi註冊表

要將NiFi連接到註冊表,請從全局菜單中選擇控制器設置。

這將顯示“NiFi設置”窗口。選擇“註冊表客戶端”選項卡,然後單擊右上角的+按鈕以註冊新的註冊表客戶端。

 

 

 

 

在“添加註冊表客戶端”窗口中,提供名稱和URL。

單擊“添加”以完成註冊。

  版本化流程在註冊表桶中存儲和組織。註冊管理員配置的存儲桶策略和特權限定了用戶可以從中導入版本化流的哪些存儲桶以及用戶可以將版本化流存儲到哪些存儲桶。有關存儲桶策略和特權的信息可以在NiFi註冊表用戶指南(https://nifi.apache.org/docs/nifi-registry-docs/html/user-guide.html)中找到。

版本國家

版本化的進程組存在以下狀態:

  • 最新 最新:流程的版本是最新的。

  • 本地修改 本地修改:已進行本地更改。

  • 陳舊 陳舊:可以使用更新版本的流程。

  • 本地修改和陳舊 本地修改和陳舊:已進行本地更改,並且可以使用更新版本的流。

  • 同步失敗 同步失敗:無法將流與註冊表同步。

顯示版本狀態信息:

  1. 進程組名稱旁邊的版本化進程組本身。將鼠標懸停在狀態圖標上會顯示有關版本化流程的其他信息。

  2. 在進程組的底部,用於進程組中包含的版本化流。

  3. 在UI頂部的狀態欄中,用於根進程組中包含的版本化流。

版本狀態信息也顯示在摘要頁面的“過程組”選項卡中。

  要查看最新版本狀態,可能需要右鍵單擊NiFi畫布並從上下文菜單中選擇“刷新”。

導入版本化流程

當NiFi實例連接到註冊表時,“導入”鏈接將出現在“添加進程組”對話框中。

選擇鏈接將打開“導入版本”對話框。

已連接的註冊表將顯示爲“註冊表”下拉菜單中的選項。對於選定的註冊表,用戶有權訪問的存儲桶將顯示爲“存儲桶”下拉菜單中的選項。所選存儲桶中的流的名稱將顯示爲“名稱”下拉菜單中的選項。選擇要導入的流的所需版本,然後爲要放置在畫布上的數據流選擇“導入”。

由於此示例中導入的版本是最新版本(MySQL CDC,版本3),因此版本化進程組的狀態爲“最新”(最新的圖標)。如果導入的版本是舊版本,則狀態將爲“Stale”(陳舊的圖標)。

啓動版本控制

要將進程組置於版本控制之下,請右鍵單擊進程組,然後在上下文菜單中選擇“版本→啓動版本控制”。

在Save Flow Version窗口中,選擇Registry and Bucket並輸入Flow的名稱。如果需要,請爲“描述”和“註釋”字段添加內容。

選擇保存並保存流的版本1。

作爲流的第一個和最新版本,版本化進程組的狀態爲“最新”(最新的圖標)。

  根進程組不能置於版本控制之下。

管理本地更改

當對版本化的進程組進行更改時,組件的狀態將更新爲“Locally modified”(本地修改的圖標)。DFM可以顯示,還原或提交本地更改。右鍵單擊進程組時,可以在上下文菜單中選擇這些選項:

或者右鍵單擊進程組內的畫布:

 

 

以下操作不被視爲本地更改:

  • 禁用/啓用處理器和控制器服務

  • 停止/啓動處理器

  • 修改敏感屬性值

  • 修改遠程進程組URL

  • 更新引用不存在的控制器服務的處理器以引用外部可用的控制器服務

  • 創建,修改或刪除變量

  創建變量不會觸發本地更改,因爲創建變量本身並未改變流程處理的任何內容。必須創建或修改使用新變量的組件,這將觸發本地更改。修改變量不會觸發本地更改,因爲變量值在每個環境中都是不同的。導入版本化流時,假定需要一次性操作來設置特定於給定環境的變量。刪除變量不會觸發本地更改,因爲需要修改引用該變量的組件,這將觸發本地更改。
  變量不支持敏感值,並且在對流程組進行版本控制時將包含變量。有關更多信息,請參閱版本化流程中的變量

顯示本地更改

通過從上下文菜單中選擇“版本→顯示本地更改”,可以在“顯示本地更改”對話框中查看對版本化過程組所做的本地更改。

您可以通過選擇去其行中的“轉到”圖標()來導航到組件。

  如“ 管理本地更改”部分中所述,有些例外可以檢查哪些操作是本地更改。此外,對同一屬性的多次更改將僅顯示爲列表中的一個更改,因爲更改是通過區分進程組的當前狀態和“顯示本地更改”對話框中記錄的進程組的已保存版本來確定的。

還原本地更改

通過從上下文菜單中選擇“版本→還原本地更改”,還原對版本化進​​程組所做的本地更改。“還原本地更改”對話框顯示DFM在啓動還原之前要查看和考慮的本地更改列表。選擇“還原”以刪除所有更改。

您可以通過選擇去其行中的“轉到”圖標()來導航到組件。

  如“ 管理本地更改”部分中所述,有些例外可以將可更改的本地更改作爲操作。此外,對同一屬性的多次更改將僅顯示爲列表中的一個更改,因爲更改是通過區分進程組的當前狀態和“還原本地更改”對話框中記錄的進程組的已保存版本來確定的。

提交本地更改

要提交和保存流版本,請從上下文菜單中選擇“版本→提交本地更改”。在“保存流版本”對話框中,根據需要添加註釋,然後選擇“保存”。

 

 

如果已修改的版本不是最新版本,則無法提交本地更改。在這種情況下,版本狀態是“本地修改和陳舊”(本地修改和陳舊)。

更改版本

要更改流的版本,請右鍵單擊版本化的流程組,然後選擇“版本→更改版本”。

在“更改版本”對話框中,選擇所需的版本並選擇“更改”:

流的版本已更改:

在所示示例中,版本化流程從較舊版本升級到較新版本。但是,版本化流程也可以回滾到舊版本。

  要使“更改版本”成爲可用選擇,需要還原對進程組的本地更改。

停止版本控制

要停止對流的版本控制,請右鍵單擊版本化的進程組,然後選擇“版本→停止版本控制”:

 

 

在“停止版本控制”對話框中,選擇“斷開連接”。

確認從版本控制中刪除進程組。

嵌套版本化流程

版本化進程組可以包含其他版本化進程組。但是,如果父進程組包含也具有本地更改的子進程組,則無法還原或保存對父進程組的本地更改。必須首先還原子進程組,或者爲要在父進程組上執行的操作提交其更改。

版本化流程中的變量

當進程組置於版本控制之下時,會包含變量。如果導入的版本化流引用了未在版本化進程組中定義的變量,則在變量存在時保留引用。如果引用的變量不存在,則將在進程組中定義變量的副本。爲了說明,假設變量“RPG_Var”在根進程組中定義:

創建進程組PG1:

PG1中的GetFile處理器引用變量“RPG_Var”:

PG1保存爲版本化流程:

如果PG1版本化流程導入到同一個NiFi實例中:

添加的GetFile處理器還將引用根進程組中存在的“RPG_Var”變量:

如果PG1版本化流程導入到不存在“RPG_Var”的不同NiFi實例中:

在PG1進程組中創建“RPG_Var”變量:

版本化流程中受限制的組件

要導入版本化流程或還原版本化流程中的本地更改,用戶必須能夠訪問版本化流程中的所有組件。因此,如果要在版本化流程中使用受限組件,則建議在根進程組級別創建受限組件。讓我們通過一些示例來說明此配置的好處。假設如下:

  • 有兩個用戶“sys_admin”和“test_user”可以訪問查看和修改根進程組。

  • “sys_admin”可以訪問所有受限制的組件。

  • “test_user”可以訪問需要“讀取文件系統”和“寫入文件系統”的受限組件。

  •  

     

     

     

     

     

     

     

根進程組中創建的受限制的控制器服務

在第一個示例中,sys_admin在根進程組級別創建KeytabCredentialsService控制器服務。

 

 

 

KeytabCredentialService控制器服務是一個受限制的組件,需要“訪問密鑰表”權限:

Sys_admin使用GetFile和PutHDFS處理器創建一個包含流的進程組ABC:

 

 

 

GetFile處理器是一個受限制的組件,需要“寫文件系統”和“讀取文件系統”權限:

PutHDFS是一個受限制的組件,需要“寫文件系統”權限:

PutHDFS處理器配置爲使用根進程組級別KeytabCredentialsService控制器服務:

Sys_admin將進程組保存爲版本化流:

Test_user通過刪除KeytabCredentialsService控制器服務來更改流程:

如果test_user選擇還原此更改:

恢復成功:

此外,如果test_user選擇導入ABC版本化流程:

導入成功:

 

 

 

 

流程組中創建的受限制的控制器服務

現在,考慮第二種情況,即在進程組級別創建控制器服務。

Sys_admin創建一個進程組XYZ:

Sys_admin在進程組級別創建KeytabCredentialsService控制器服務:

在進程組中創建相同的GetFile和PutHDFS流:

但是,PutHDFS現在引用了進程組級控制器服務:

Sys_admin將進程組保存爲版本化流。

Test_user通過刪除KeytabCredentialsService控制器服務來更改流。但是,使用此配置,如果test_user嘗試還原此更改:

恢復不成功,因爲test_user沒有KeytabCredentialService控制器服務所需的“訪問密鑰表”權限:

同樣,如果test_user嘗試導入XYZ版本化流程:

導入失敗:

模板

DFM能夠使用NiFi構建非常大且複雜的DataFlow。這是通過使用基本組件實現的:處理器,漏斗,輸入/輸出端口,進程組和遠程進程組。這些可以被認爲是構建DataFlow的最基本構建塊。但是,有時候,如果需要重複多次相同的邏輯,使用這些小的構建塊會變得乏味。

爲了解決這個問題,NiFi提供了模板的概念。模板是將這些基本構建塊組合成更大的構建塊的一種方式。創建DataFlow後,可以將其中的一部分組成模板。然後可以將此模板拖到畫布上,也可以將其導出爲XML文件並與其他人共享。然後可以將從其他人處接收的模板導入NiFi實例並拖動到畫布上。

創建模板

要創建模板,請選擇要作爲模板一部分的組件,然後單擊 操作選項板中的 Create Template( 創建模板)按鈕(有關操作選項板的更多信息,請參閱NiFi用戶界面)。

單擊此按鈕而不選擇任何內容將創建一個包含當前進程組的所有內容的模板。這意味着在根進程組上創建一個沒有選擇任何內容的模板將創建一個包含整個流的模板。

單擊此按鈕後,將提示用戶提供模板的名稱和可選說明。每個模板都必須具有唯一的名稱。輸入名稱和可選說明後,單擊該Create按鈕將生成模板並通知用戶模板已成功創建,或者如果由於某種原因無法創建模板,則提供相應的錯誤消息。

  請務必注意,如果任何Templated處理器具有敏感屬性(例如密碼),則該敏感屬性的值不會包含在模板中。因此,在將模板拖動到畫布上時,如果新創建的處理器缺少其敏感屬性的值,則它們可能無效。此外,如果連接的源或目標未包含在模板中,則在製作模板時選擇的任何連接都不包含在模板中。

導入模板

在收到從另一個NiFi導出的模板後,使用該模板所需的第一步是將模板導入到此NiFi實例中。您可以將模板導入到具有相應授權的任何Process Group。

在Operate Palette中,單擊Upload Template( 上傳模板 )按鈕(有關Operate Palette的更多信息,請參閱NiFi用戶界面)。這將顯示“上載模板”對話框。單擊查找圖標並使用“文件選擇”對話框選擇要上載的模板文件。選擇文件,然後單擊“打開”。單擊該Upload按鈕將嘗試將模板導入此NiFi實例。如果導入模板時出現問題,“上載模板”對話框將更新爲顯示“成功”或錯誤消息。

實例化模板

創建模板(請參閱創建模板)或導入模板(請參閱導入模板)後,就可以將其實例化,或添加到畫布中。這是通過將模板圖標(模板 )從組件工具欄(請參閱NiFi用戶界面)拖到畫布上來完成的。

這將顯示一個對話框,用於選擇要添加到畫布的模板。選擇要添加的模板後,只需單擊Add按鈕即可。模板將添加到畫布中,模板的左上角放置在用戶放置模板圖標的任何位置。

這使得新實例化的模板的內容被選中。如果出現錯誤,並且不再需要此模板,則可能會將其刪除。

管理模板

NiFi模板最強大的功能之一是能夠輕鬆地將模板導出到XML文件並導入已導出的模板。這提供了一種非常簡單的機制,用於與其他人共享部分DataFlow。您可以從全局菜單中選擇模板(請參閱NiFi用戶界面)以打開一個對話框,其中顯示當前可用的所有模板,過濾模板以僅查看感興趣的模板,導出和刪除模板。

導出模板

創建模板後,可以在“模板管理”頁面中與其他人共享。要導出模板,請在表中找到模板。如果有幾個可用的話,右上角的過濾器可用於幫助查找相應的模板。然後單擊Download按鈕( 出口 )。這會將模板作爲XML文件下載到您的計算機。然後可以將此XML文件發送給其他人並導入到其他NiFi實例中(請參閱導入模板)。

刪除模板

一旦確定不再需要模板,就可以從模板管理頁面輕鬆刪除它。要刪除模板,請在表格中找到它(如果有幾個可用,可以使用右上角的過濾器查找相應的模板)並單擊Delete按鈕( 刪除 )。這將提示確認。確認刪除後,模板將從此表中刪除,不再可用於添加到畫布。

數據來源

在監視數據流時,用戶通常需要一種方法來確定特定數據對象(FlowFile)的發生情況。NiFi的Data Provenance頁面提供了該信息。由於NiFi在對象流經系統時記錄和索引數據來源詳細信息,因此用戶可以執行搜索,進行故障排除以及實時評估數據流合規性和優化等內容。默認情況下,NiFi每五分鐘更新一次此信息,但這是可配置的。

要訪問Data Provenance頁面,請從Global Menu中選擇“Data Provenance”。這將打開一個對話框窗口,允許用戶查看可用的最新數據源文件信息,搜索特定項目的信息,並過濾搜索結果。還可以打開其他對話框窗口以查看事件詳細信息,在數據流中的任何位置重放數據,以及查看數據的沿襲或流程路徑的圖形表示。(這些功能將在下面詳細介紹。)

啓用授權後,訪問Data Provenance信息需要“查詢出處”全局策略以及生成事件的組件的“查看出處”組件策略。此外,訪問包含FlowFile屬性和內容的事件詳細信息需要爲生成事件的組件“查看數據”組件策略。

 

Provenance Events

以某種方式處理FlowFile的數據流中的每個點都被視爲“起源事件”。根據數據流設計,會發生各種類型的起源事件。例如,當數據進入流程時,會發生RECEIVE事件,並且當數據從流程中發出時,會發生SEND事件。可能會發生其他類型的處理事件,例如克隆數據(CLONE事件),路由(ROUTE事件),修改(CONTENT_MODIFIED或ATTRIBUTES_MODIFIED事件),拆分(FORK事件),與其他數據對象(JOIN事件)相結合,並最終從流程中刪除(DROP事件)。

起源事件類型是:

種源事件 描述

ADDINFO

當添加其他信息(例如新鏈接到新URI或UUID)時,表示源項事件

ATTRIBUTES_MODIFIED

表示以某種方式修改了FlowFile的屬性

CLONE

表示FlowFile與其父FlowFile完全相同

CONTENT_MODIFIED

表示以某種方式修改了FlowFile的內容

CREATE

表示FlowFile是從未從遠程系統或外部進程接收的數據生成的

DOWNLOAD

表示用戶或外部實體下載了FlowFile的內容

DROP

表示由於對象到期之外的某些原因導致對象生命結束的起源事件

EXPIRE

表示由於未及時處理對象而導致對象生命結束的起源事件

FETCH

指示使用某些外部資源的內容覆蓋FlowFile的內容

FORK

表示一個或多個FlowFiles是從父FlowFile派生的

JOIN

表示單個FlowFile是通過將多個父FlowFiles連接在一起而派生的

RECEIVE

表示從外部進程接收數據的來源事件

REPLAY

表示重放FlowFile的originance事件

ROUTE

表示FlowFile已路由到指定的關係,並提供有關FlowFile路由到此關係的原因的信息

SEND

表示將數據發送到外部進程的originance事件

UNKNOWN

表示原產地事件的類型未知,因爲嘗試訪問該事件的用戶無權知道該類型

搜索活動

在Data Provenance頁面中執行的最常見任務之一是搜索給定的FlowFile以確定它發生了什麼。爲此,請單擊Search“數據源”頁面右上角的按鈕。這將打開一個對話框窗口,其中包含用戶可以爲搜索定義的參數。參數包括感興趣的處理事件,區分FlowFile或產生事件的組件的特徵,搜索的時間範圍以及FlowFile的大小。

例如,要確定是否收到特定的FlowFile,請搜索“RECEIVE”的事件類型,幷包含FlowFile的標識符,例如其uuid或文件名。星號(*)可用作任意數量字符的通配符。因此,要確定在2015年1月6日的任何時間是否收到了文件名中任何位置帶有“ABC”的FlowFile,可以執行下圖所示的搜索:

活動詳情

在Data Provenance頁面的最左側列中View Details,每個事件都有一個圖標(細節)。單擊此按鈕將打開一個對話框窗口,其中包含三個選項卡:詳細信息,屬性和內容。

“詳細信息”選項卡顯示有關事件的各種詳細信息,例如事件發生的時間,事件的類型以及生成事件的組件。顯示的信息將根據事件類型而有所不同。此選項卡還顯示有關已處理的FlowFile的信息。除了顯示在“詳細信息”選項卡左側的FlowFile的UUID之外,與“詳細信息”選項卡右側顯示的與該FlowFile相關的任何父文件或子項FlowFiles的UUID也顯示在該詳細信息選項卡的右側。

“屬性”選項卡顯示流程中該點上FlowFile中存在的屬性。爲了僅查看由於處理事件而修改的屬性,用戶可以選擇“屬性”選項卡右上角“僅顯示已修改”旁邊的複選框。

重播FlowFile

DFM可能需要在數據流中的某個點檢查FlowFile的內容,以確保按預期處理它。如果沒有正確處理,DFM可能需要調整數據流並再次重放FlowFile。“查看詳細信息”對話框窗口的“內容”選項卡是DFM可以執行這些操作的位置。“內容”選項卡顯示有關FlowFile內容的信息,例如其在內容存儲庫中的位置及其大小。此外,用戶可以在此處單擊Download按鈕以下載流程中此時存在的FlowFile內容的副本。用戶還可以單擊該Submit按鈕以在流程中的此時重放FlowFile。點擊後Submit,FlowFile被髮送到爲生成此處理事件的組件提供的連接。

查看FlowFile Lineage

查看FlowFile在數據流中採用的譜系或路徑的圖形表示通常很有用。要查看FlowFile的譜系,請單擊顯示血統Data Provenance表的最右側列中的“Show Lineage”圖標()。這將打開一個圖形,顯示FlowFile(FlowFile)和已發生的各種處理事件。所選事件將以紅色突出顯示。它可以右鍵單擊或任何事件雙擊看到事件的詳細信息(參見事件的詳細信息)。要查看譜系如何隨時間演變,請單擊窗口左下角的滑塊並將其向左移動以查看數據流中較早階段的譜系狀態。

Find Parents

有時,用戶可能需要跟蹤從中生成另一個FlowFile的原始FlowFile。例如,當發生FORK或CLONE事件時,NiFi會跟蹤生成其他FlowFiles的父FlowFile,並且可以在Lineage中找到父FlowFile。右鍵單擊沿襲圖中的事件,然後從上下文菜單中選擇“查找父項”。

選擇“查找父項”後,將重新繪製圖形以顯示父FlowFile及其譜系以及子項及其譜系。

擴展活動

與查找父FlowFile有用的方式相同,用戶可能還想確定從給定FlowFile生成的子項。要執行此操作,請右鍵單擊沿襲圖中的事件,然後從上下文菜單中選擇“展開”。

選擇“展開”後,將重新繪製圖形以顯示子項及其譜系。

提前編寫源代碼存儲庫

默認情況下,Provenance Repository以Persistent Provenance配置實現。在Apache NiFi 1.2.0中,引入了Write Ahead配置以提供與Persistent Provenance相同的功能,但性能要好得多。遷移到Write Ahead配置很容易實現。只需nifi.provenance.repository.implementationnifi.properties文件中系統屬性的設置更改爲默認值org.apache.nifi.provenance.PersistentProvenanceRepositoryto,org.apache.nifi.provenance.WriteAheadProvenanceRepository然後重新啓動NiFi。

但是,爲了增加遷移成功的可能性,請考慮以下因素和建議的操作。

向後兼容性

WriteAheadProvenanceRepository可以使用的存儲出處的數據PersistentProvenanceRepository。但是,PersistentProvenanceRepository可能無法讀取所寫的數據WriteAheadProvenanceRepository。因此,一旦將Provenance Repository更改爲使用WriteAheadProvenanceRepository,它就不能在PersistentProvenanceRepository沒有先刪除Provenance Repository中的數據的情況下更改回。因此,建議在將實施更改爲Write Ahead之前,確保您的NiFi版本穩定,以防出現需要回滾到不支持的NiFi的先前版本的問題WriteAheadProvenanceRepository

較舊的現有NiFi版本

如果要從較舊版本的NiFi升級到1.2.0或更高版本,建議您在1.2.0之前確認流量和環境穩定之前,不要將起源配置更改爲“預先寫入”。這樣可以減少升級中的變量數量,並在出現任何問題時簡化調試過程。

Bootstrap.conf

雖然使用G1垃圾收集器可以獲得更好的性能,但Java 8錯誤可能會在Write Ahead配置中更頻繁地出現。建議在目錄中的bootstrap.conf文件中註釋掉以下行conf

java.arg.13 = -XX:+ UseG1GC

系統屬性

Persistent和Write Ahead配置都支持許多相同的系統屬性,但是爲Persistent Provenance配置選擇了默認值。更改爲Write Ahead配置時,應注意以下例外和建議:

 

  • nifi.provenance.repository.journal.count is not relevant to a Write Ahead configuration

  • nifi.provenance.repository.concurrent.merge.threads and nifi.provenance.repository.warm.cache.frequency are new properties. The default values of 2 for threads and blank for frequency (i.e. disabled) should remain for most installations.

  • Change the settings for nifi.provenance.repository.max.storage.time (default value of 24 hours) and nifi.provenance.repository.max.storage.size (default value of 1 GB) to values more suitable for your production environment

  • Change nifi.provenance.repository.index.shard.size from the default value of 500 MB to 4 GB

  • Change nifi.provenance.repository.index.threads from the default value of 2 to either 4 or 8 as the Write Ahead repository enables this to scale better

  • If processing a high volume of events, change nifi.provenance.repository.rollover.time from a default of 30 secs to 1 min and nifi.provenance.repository.rollover.size from the default of 100 MB to 1 GB

完成這些屬性更改後,重新啓動NiFi。

加密的源代碼注意事項

上述遷移建議WriteAheadProvenanceRepository也適用於配置的加密版本EncryptedWriteAheadProvenanceRepository

下一節提供了有關實現Encrypted Provenance Repository的更多信息。

加密的Provenance存儲庫

雖然操作系統級訪問控制可以提供對存儲庫中寫入磁盤的起源數據的某些安全性,但有些情況下數據可能是敏感的,合規性和法規要求存在,或者NiFi在不受直接控制的硬件上運行。組織(雲等)。在這種情況下,originance存儲庫允許在將所有數據持久保存到磁盤之前對其進行加密。

 

性能

加密源文件庫的當前實現攔截了記錄編寫者和讀者WriteAheadProvenanceRepository,它提供了對遺留的顯着性能改進PersistentProvenanceRepository並使用該AES/GCM算法,該算法在商品硬件上相當高效。在大多數情況下,增加的成本並不顯着(在每秒數百個來源事件的流量上不明顯,在每秒數千個 - 數萬個事件的流量上適度顯着)。但是,管理員應該執行自己的風險評估和性能分析,並決定如何繼續前進。目前不建議在加密/未加密的實現之間來回切換。

它是什麼?

EncryptedWriteAheadProvenanceRepository是originance資源庫的一個新實現,它在將所有事件記錄信息寫入存儲庫之前對其進行加密。這允許在OS級訪問控制不足以保護數據的系統上進行存儲,同時仍允許通過NiFi UI / API查詢和訪問數據。

它是如何工作的?

WriteAheadProvenanceRepository是在NiFi 1.2.0中引入的,並提供了比以前更好的重構和更快的出處庫實現PersistentProvenanceRepository。加密版本使用記錄編寫器和讀取器包裝該實現,該記錄編寫器和讀取器分別加密和解密序列化字節。

完全限定的類org.apache.nifi.provenance.EncryptedWriteAheadProvenanceRepositorynifi.properties中指定爲起源存儲庫實現,作爲值nifi.provenance.repository.implementation。此外,必須填充新屬性以允許成功初始化。

StaticKeyProvider

StaticKeyProvider實現直接在nifi.properties中定義鍵。各個鍵以十六進制編碼提供。使用NiFi Toolkit中的工具,密鑰也可以像nifi.properties中的任何其他敏感屬性一樣加密./encrypt-config.sh

以下配置部分將導致密鑰提供程序具有兩個可用密鑰,“Key1”(活動)和“AnotherKey”。

nifi.provenance.repository.encryption.key.provider.implementation=org.apache.nifi.security.kms.StaticKeyProvider
nifi.provenance.repository.encryption.key.id=Key1
nifi.provenance.repository.encryption.key=0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210
nifi.provenance.repository.encryption.key.id.AnotherKey=0101010101010101010101010101010101010101010101010101010101010101

FileBasedKeyProvider

FileBasedKeyProvider執行從格式的加密定義文件上寫着:

key1=NGCpDpxBZNN0DBodz0p1SDbTjC2FG5kp1pCmdUKJlxxtcMSo6GC4fMlTyy1mPeKOxzLut3DRX+51j6PCO5SznA==
key2=GYxPbMMDbnraXs09eGJudAM5jTvVYp05XtImkAg4JY4rIbmHOiVUUI6OeOf7ZW+hH42jtPgNW9pSkkQ9HWY/vQ==
key3=SFe11xuz7J89Y/IQ7YbJPOL0/YKZRFL/VUxJgEHxxlXpd/8ELA7wwN59K1KTr3BURCcFP5YGmwrSKfr4OE4Vlg==
key4=kZprfcTSTH69UuOU3jMkZfrtiVR/eqWmmbdku3bQcUJ/+UToecNB5lzOVEMBChyEXppyXXC35Wa6GEXFK6PMKw==
key5=c6FzfnKm7UR7xqI2NFpZ+fEKBfSU7+1NvRw+XWQ9U39MONWqk5gvoyOCdFR1kUgeg46jrN5dGXk13sRqE0GETQ==

每行定義一個密鑰ID,然後定義16字節IV和包裝的AES-128,AES-192或AES-256密鑰的Base64編碼密文,具體取決於可用的JCE策略。各個密鑰由使用AES / GCM加密包裹主密鑰通過限定nifi.bootstrap.sensitive.keyCONF / bootstrap.conf

鍵旋轉(Key Rotation)

只需更新nifi.properties即可引用新的密鑰ID nifi.provenance.repository.encryption.key.id。只要該密鑰在密鑰定義文件中仍然可用,或者nifi.provenance.repository.encryption.key.id.<OldKeyID>密鑰ID與加密記錄一起序列化,以前加密的事件仍然可以被解密。

寫作和閱讀事件記錄

初始化存儲庫後,所有源項事件記錄寫入操作將根據配置的模式編寫器(EventIdFirstSchemaRecordWriter默認情況下WriteAheadProvenanceRepository)序列化爲a byte[]。然後,這些字節被使用的一個實現加密ProvenanceEventEncryptor(唯一的當前的實現是AES/GCM/NoPadding)和加密的元數據(keyIdalgorithmversionIV)被串行化和前綴。byte[]然後將complete完成寫入磁盤上的存儲庫。

在記錄讀取時,該過程是相反的。解密加密元數據並用於解密序列化字節,然後將其反序列化爲ProvenanceEventRecord對象。對正常模式記錄寫入器/讀取器的委託允許“隨機訪問”(即,立即搜索而不解密不必要的記錄)。

在NiFi UI / API中,加密和未加密的起源存儲庫之間沒有可檢測到的差異。Provenance Query操作按預期工作,不會對過程進行任何更改。

潛在問題

 

切換實現 (Switching Implementations)

當執行“families”之間(即切換VolatileProvenanceRepositoryPersistentProvenanceRepositoryEncryptedWriteAheadProvenanceRepository),現有的存儲庫,必須從文件系統啓動之前NiFi清除。終端命令localhost:$NIFI_HOME $ rm -rf provenance_repository/就足夠了。

  • 在未加密和加密的存儲庫之間切換

    • 如果用戶具有未加密的現有存儲庫(WriteAheadProvenanceRepository僅 -   PersistentProvenanceRepository)並將其配置切換爲使用加密存儲庫,則應用程序會將錯誤寫入日誌但會啓動。但是,以前的事件無法通過起源查詢界面訪問,新事件將覆蓋現有事件。如果用戶從加密存儲庫切換到未加密的存儲庫,則會發生相同的行爲。自動翻轉是未來的努力(NIFI-3722),但NiFi不適用於物源事件的長期存儲,因此影響應該是最小的。翻轉有兩種情況:

      • 加密→未加密 - 如果以前的存儲庫實現已加密,只要可用的密鑰提供程序仍具有用於加密事件的密鑰,就應無縫處理這些事件(請參閱密鑰輪換

      • 未加密→加密 - 如果以前的存儲庫實現未加密,則應無縫處理這些事件,因爲先前記錄的事件只需要使用明文架構記錄讀取器讀取,然後使用加密記錄寫入器寫回

    • 今後還有一項工作是在NiFi Toolkit中提供一個獨立的工具來加密/解密現有的出處存儲庫,以便更容易地進行過渡。轉換過程可能需要很長時間,具體取決於現有存儲庫的大小,並且能夠在應用程序啓動之外執行此任務將是有價值的(NIFI-3723)。

  • 多個存儲庫 - 此時不再對多個存儲庫應用額外的工作或測試。可能/可能在不同物理設備上的存儲庫中會出現問題。沒有選擇提供異構環境(即一個加密的,一個明文存儲庫)。

  • 損壞 - 當磁盤被填滿或損壞時,已報告存儲庫損壞並且需要恢復步驟的問題。這可能會繼續成爲加密存儲庫的問題,但仍然限制在單個記錄的範圍內(即整個存儲庫文件由於加密而不會無法恢復)。

其他管理功能

除摘要頁面,數據源頁面,模板管理頁面和公告板頁面外,全局菜單中還有其他工具(請參閱NiFi用戶界面),這些工具對DFM很有用。選擇“流配置歷史記錄”以查看對數據流所做的所有更改。歷史記錄可以幫助進行故障排除,例如,如果最近對數據流的更改導致了問題並且需要修復。DFM可以查看已進行的更改並根據需要調整流量以解決問題。雖然NiFi沒有“撤消”功能,但DFM可以對數據流進行新的更改以解決問題。

全局菜單中的另外兩個工具是控制器設置和用戶。“控制器設置”頁面提供了更改NiFi實例名稱,添加描述NiFi實例的註釋以及設置應用程序可用的最大線程數的功能。它還提供了DFM可以添加和配置Controller ServicesReporting Tasks的選項卡。“用戶”頁面用於管理用戶訪問,“ 系統管理員指南”中對此進行了描述。

 

 

 

原文:  http://nifi.apache.org/docs.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章