ETL工具-nifi乾貨系列 第五講 處理器GenerateFlowFile

1、今天我們一起來學習處理器GenerateFlowFile。這個處理器創建帶有隨機數據或自定義內容的 FlowFiles。GenerateFlowFile 對於負載測試、配置和模擬非常有用。從工具欄拖動處理器到畫布,然後選擇GenerateFlowFile即可。

 2、點擊add按鈕或者雙擊 GenerateFlowFile可將此處理器添加到畫布。

 3、此時GenerateFlowFile 有個感嘆號的圖標,標記處理器存在無效的配置。上圖的提示意思是當此處理器處理成功之後沒有設置流向組件(其他處理器)同時頁面設置自動終止。

雙擊處理器,然後彈出處理器配置頁面,選擇relationships選項卡,勾選terminate或者同時勾選terminate和retry選項即可消除感嘆號。若同時選擇terminate和retry兩個選項,處理器會先執行重試邏輯(若有)然後終止。

 

 4、打開處理器配置頁面,第一個選項卡settings爲所有處理器的共有配置。

 

 Name:自定義處理器名字

Enabled:標記處理器是否可用

Id:處理器的唯一標識符

Type:處理器類型+版本號

Bundle:處理器的類名和NAR包(它是一種 NiFi 插件或擴展的打包格式。NiFi 的功能可以通過安裝和加載 NAR 包來進行擴展。)

Penalty Duration:在正常處理數據(一個FlowFile)的過程中,可能會發生一個事件,表明此時無法處理數據,但數據可能在以後的某個時候可以處理。當發生這種情況時,處理器可以選擇對FlowFile進行處罰。這將阻止FlowFile在一段時間內被處理。例如,如果處理器要將數據推送到遠程服務,但遠程服務已經有一個與處理器指定的文件名相同的文件,則處理器可能會對FlowFile進行處罰。'Penalty Duration’允許DFM指定FlowFile應被處罰的時間長度。默認值爲30秒。

Yield Duration:處理器可能會確定存在某種情況,使得處理器無論處理哪些數據都無法取得任何進展。例如,如果處理器要將數據推送到遠程服務而該服務未響應,處理器將無法取得任何進展。因此,處理器應該“yield”,這將阻止處理器在一段時間內被調度運行。該時間段由設置“Yield Duration”來指定。默認值爲1秒。

Bulletin level:公告級別。每當處理器寫入其日誌時,處理器也會生成一個公告。此設置指示在用戶界面中應顯示的最低級別的公告。默認情況下,公告級別設置爲WARN,這意味着它將顯示所有警告和錯誤級別的公告。設置此選項後可以很方便的看到錯誤日誌信息而不是通過查找日誌文件。

5、scheduling(調度設置)

Scheduling Strategy (調度策略)

調度策略有三種可能的選項:

Timer driven:這是默認模式。處理器將定期運行。運行處理器的時間間隔由Run Schedule選項定義。

Event driven:選擇此模式時,將由一個事件觸發處理器運行,當FlowFiles進入連接此處理器的Connections時,將產生這個事件。此模式目前被認爲是實驗性的,並非所有處理器都支持。選擇此模式時,Run Schedule選項不可配置。此外,只有此模式下Concurrent Tasks選項可以設置爲0。這種情況,線程數僅受管理員配置的事件驅動線程池的大小限制。

CRON驅動:當使用CRON驅動的調度模式時,處理器將定期運行,類似於定時器驅動的調度模式。CRON驅動模式提供了更大的靈活性。類似於quartz中的cron。

 

(Concurrent Tasks)併發任務

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

(Run Schedule)運行計劃

"Run Schedule"指示處理器運行的頻率。此字段的有效值取決於所選的調度策略。如果使用事件驅動的調度策略,則此字段不可用。使用定時器驅動的調度策略時,該值是由數字後跟時間單位指定的持續時間。例如,1 second或5 mins。默認值0 sec表示處理器應儘可能頻繁地運行,只要它有要處理的數據即可。使用CRON驅動的調度策略時,此值設置爲cron表達式。

(Execution)執行

執行設置用於確定處理器將被調度執行的節點。選擇"All Nodes"將導致在集羣中的每個節點上調度此處理器。選擇"Primary Node"將導致此處理器僅在主節點上進行調度。已配置"Primary Node"執行的處理器由處理器圖標旁邊的"P"標識,如下圖所示

 

 

6、(Properties)屬性

在下面的屬性列表中,必填屬性的名稱以粗體顯示。任何其他屬性(不是粗體)都被認爲是可選的。

 

File Size: 將使用的文件流的大小
Batch Size :每次調用時要傳輸出去的流文件的數量
Data Format :指定數據應該是文本還是二進制
Unique FlowFiles: 如果選擇true,則生成的每個流文件都是惟一的。
如果選擇false,此處理器將生成一個隨機值,所有的流文件都是相同的內容,模仿更高的吞吐量時可以這樣使用
Custom Text:   如果Data Format選擇Text,且Unique FlowFiles選擇爲false,那麼這個自定義文本將用作生成的流文件的內容,文件大小將被忽略。
如果Custom Text中使用了表達式語言,則每批生成的流文件只執行一次表達式語言的計算
支持表達式語言:true(只使用變量註冊表進行計算)
Character Set: UTF-8 指定將自定義文本的字節寫入流文件時要使用的編碼

Mime Type:設置mime type,如text/plain

問號標記指出屬性默認值(如果有默認值),以及屬性是否支持表達式語言,如下圖所示:

7、(comments)備註,填寫自定義備註,如業務邏輯等。 

 8、右鍵Start 或者Run Once 運行處理器。

9、右鍵 View data provenance 可以查看數據的溯源信息。

 

 點擊i圖標,查看文件的詳情、屬性、內容信息,如下圖所示。

 

 

 

 

 注:該處理器生成流文件固只能作爲所設計流程的第一個處理器,不允許作爲其他處理器傳入連接關係。

 

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