2、配置樣例
# 定義agent的名字、source、channel、sink
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 配置source(查閱官網)
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# 配置sink(查閱官網)
a1.sinks.k1.type = logger
# 配置source
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactioncapacity = 100
# 配置source和channel、source和sink連線
#乙個sink只能連線乙個channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
3、啟動:flume-ng -n a1 -c 配置檔案資料夾 -f 編寫的樣例位置 -dflume.root.logger=info,console(日誌輸出到控制台)
put事務:將資料寫入putlist,提交時判斷channel是否可以寫入,如果不可以寫入事務回滾,資料需要重新提交
take事務:sink從channel拉取資料放入到takelist中,takelist提交資料寫入到目的地,如果寫失敗了,資料回滾重新寫入,在寫的過程中takelist不釋放資源,只有真正寫成功才會釋放資源
資料進入source後,由channelprocessor呼叫相關的***對資料進行預處理,處理好後傳送給channelselector,選擇對應的分發策略傳送給channel,sink端由sinkprocessor選擇相應的分發策略,傳送到對應的sink把資料寫入到對應的目的地
channelselector:
sinkprocessor:
實現interceptor介面,重寫對應的方法
public class myinterceptor implements interceptor
@override
public event intercept(event event) else if (body[0] >= '0' && body[0] <= '9')
return event;
}@override
public listintercept(listlist)
return list;
}@override
public void close()
public static class builder implements interceptor.builder
@override
public void configure(context context) }}
***配置:(搭配多路復用)
#復用
a1.sources.r1.selector.type = multiplexing
a1.sources.r1.selector.header = type
#自定義***
a1.sources.r1.interceptors = i1
#注意:呼叫的是interceptor的內部類builder
a1.sources.r1.interceptors.i1.type = com.atguigu.demo.myinterceptor$builder
葵花寶典 kafka
kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要應用於大資料實時處理領域。producer 生產者,向kafka傳送資料 consumer 消費者,消費kafka內的資料 consumer group 消費者組,消費者組內的消費者負責消費不同分割槽的資料,乙個分割槽只能由乙個消費者消費,乙...
葵花寶典完全解析!
欲練神功,揮刀自宮。這是絕世神功 葵花寶典 的入門法則,聲稱要練這門神功的人必須先揮刀割掉自己的jj才能入門,殊為恐怖,於是早就了江湖上不少仁人志士為了練就神功,不惜捨棄人世間最重要的一項生活,忍痛割愛。然而,真的必須割麼?經過研究和思考,我發現乙個驚天秘密,其實中原的武林人士都對寶典的這句入門法則...
找到了眾多本「葵花寶典」
找到了眾多本 葵花寶典 又經歷了人生的一次搬家,從上大學到現在搬家都數不過來了,每次搬家必然麻煩我的親朋好友,書多呀。但凡搬家,總會丟書,這次亦然。我可憐的書呀,你在 昨 天晚上整理書籍,知道了眾多的寶典,真的是 葵花寶典 從 圖論程式設計 到 具體數學 電腦科學基礎 再到 計算機程式設計藝術 這些...