Flume NG(三)使用Event介面表示資料流

2021-10-24 16:28:02 字數 1182 閱讀 3636

flume ng有4個主要的元件:

event表示在flume各個agent之間傳遞的資料流

source表示從外部源接收event資料流,然後傳遞給channel

channel表示對從source傳遞的event資料流的臨時儲存

sink表示從channel中接收儲存的event資料流,並傳遞給下游的source或者終點倉庫

這篇看一下event介面表示的資料流。source, channel, sink操作的資料流都是基於event介面的封裝。

public inte***ce event
event介面非常簡單,資料流分為兩個部分:訊息頭和訊息體。訊息頭是乙個key-value的,儲存字串的結構。訊息體是普通的位元組陣列。 

event的類層次結構如下

來看一下常用的******event的具體實現,execsource等元件都是使用它來封裝本地日誌資料。它的實現非常簡單,就是設定了header和body兩部分資料。

public class ******event implements event 

@override

public mapgetheaders()

@override

public void setheaders(mapheaders)

@override

public byte getbody()

@override

public void setbody(byte body)

this.body = body;

} @override

public string tostring()

}

看一下如何建立event物件例項 

public class eventbuilder 

event.setbody(body);

if (headers != null)

return event;

}}

Flume NG 使用首記

第一步,配置cloudera cdh4軟體源,見cloudera官網文件。略 第二步,安裝flume客戶端 yum y install flume ng 第三步,配置flume 1 flume使用經典的alternatives進行多版本管理,檢視 新增配置路徑 alternatives displa...

使用Event同步執行緒

win32寫多執行緒的時候經常需要執行緒同步,同步的方法很多,效率也不一樣,這裡介紹一種event同步物件。建立乙個mfc基於dialog的工程,介面如圖 執行緒部分 全部為全域性變數和函式 const int max thread 3 handle hevent null handle to ev...

event 事件的使用

event用於兩個執行緒間的協作,比如乙個執行緒得到了資料發訊號給另乙個執行緒讓它來處理 多執行緒裡的event from threading import thread,event import time,random event event def light print light is li...