Source catalog:
1.Console 控制檯輸出,可以帶輸出內容格式的參數
比如console(“raw”), console(“json”)
2.text("filename"[, format])
一次讀取文件內容,每一個換行做爲一個事件。
3.tail("filename"[,startFromEnd=false]{,delim="regex", delimMode="exclude|prev|next"})
讀取文件尾部內容跟linux上tail類似。
Filename:讀取的文件名,
StartFromEnd 每次重讀時,是否重頭開始讀。默認false每次重頭開始重讀,
Delim 是分割參數,
DelimMode分隔符數據屬於哪一部分的指定。
4.tailDir("dirname"[,fileregex=".*"[, startFromEnd=false[,recurseDepth=0]]]{,delim="regex",delimMode="exclude|prev|next"})
對一個目錄下面有改動文件的事件發送
Dirname:目錄名
Fileregex:文件名正則表達式匹配,需要符合java中正則表達式規則
StartFromeEnd 跟tail中的參數一樣。
RecurseDepth :指定目錄下是否遞歸對其子目錄中文件的監控。指定遞歸層數。
其他剩餘參數跟tail中一致。
Sinks catalog
CollectorTier Event Sinks
1. collectorSink("fsdir","fsfileprefix"[, rollmillis[, format]])
收集發送過來的事件。
Fsdir:目錄,
Fsfileprefix:文件前綴,
Rollmillis:對於hdfs來就是文件的打開是關閉這段時間
Format是輸出文件格式
AgentTier Event Sinks
1、agentSink[("machine"[,port])] |
Defaults to agentE2ESink |
2、agentE2ESink[("machine"[,port])]
先講event內容寫入文件防止在緩衝丟失和點對點確認的數據傳輸
Machine:collectorSource的ip,
Port:collectorSource的端口
3、agentDFOSink[("machine"[,port])]
當連接斷開時,會把event寫到本地,並且會不斷重試發送event給對方,把之前未發送成功的event再次發送。
4、agentBESink[("machine"[,port])]
BestEffort Agent sink,最有效率的agent sink,顧名思義,就是隻管發送,不管有沒有發送成功。就可能存在丟失event的情況存在。
1、 agentE2EChain("m1[:_p1_]"[, "m2[:_p2_]"[,…]])
有多個collector可供選擇發送。如果第一丟失連接了,就會向第二發送event,以此類推。並且會不定期回來查看原來沒反應的collector是否已經恢復了,如果恢復了,就會跟原來的節點交互了。發送機制跟agentE2ESink一樣
2、 agentDFOChain("m1[:_p1_]"[, "m2[:_p2_]"[,…]])
3、 agentBEChain("m1[:_p1_]"[, "m2[:_p2_]"[,…]])
上面兩個跟6類似
autoE2EChain,autoDFOChain,autoBEChain,自動的會想master要可以連接的collector
裝飾器catalog
1、writeAhead 在sink發送前先寫入文件後,在本地緩衝機制,可讓接收和發送分別在不同的線程中進行。
2、ackedWriteAhead[(maxmillis)]
3、diskFailover[(maxmillis)]
如果event發送失敗,就在本地磁盤緩存,然後每隔maxmillis時間去重試。
4、ackInjector:注入ack確認操作。
5、ackChecker:計算髮送組的checksum值,插入到ackInjector中
6、lazyOpen:只在條用append的時候,纔會做真正的open,closed操作
7、 format("pattern"):改變輸出格式,具體格式有pattern參數指定。對於需要做checksum的events來說由於改變了數據格式將導致checksum的值也不會改變。從而導致消息的丟失。這個裝飾器一般用在對消息可靠性要求不是很高,或者reports中。 8、 batch(n,maxlatency):緩存n個events然後統一發送。如果等待時間操作maxlatency,即使未有n個events也會發送。 9、 unbatch:對於上面被batch操作過的events,同步unbatch來拆分開。 10、 gzip:將events事件序列化後壓縮 11、 gunzip:對gzip壓縮過的events,解壓 12、 intervalSampler(n)每隔n個events發送一次,算是一個優化手段,特別是通過網絡傳輸時。 13、 probSampler(p):通過概率p來做決定是否將events接着往下發送 14、 reservoirSampler(k):對接收到events根據發送時的順序重新來組織。 15、 delay(ms)對要發送的events內容延遲ms 16、 choke[(choke-id)]:限制發送速度 |