Flume配置文件(flume-site.conf)
1、 watchdog
watchdog.restarts.max |
watchdog每分鐘重啓的最大數??? |
2、 common node
flume.config.heartbeat.period |
node發送心跳週期,默認5000(毫秒) |
flume.node.status.port |
node web端口 |
flume.node.heartbeat.backoff.ceiling |
node向master發送心跳之後等待反饋的最大時長,默認60000(毫秒) |
flume.node.http.autofindport |
如果已有node啓動,允許第二個node自動選擇一個未使用的端口做web服務。多個node的界面端口從35862、35863向後延續 |
3、agent
flume.agent.logdir |
agent日誌路徑 |
flume.agent.logdir.maxage |
當前處於打開狀態agent日誌文件收集信息的時長,在這之後該日誌文件將會被關閉,並將數據發送到網絡,默認10000(毫秒) |
flume.agent.logdir.retransmit |
在end-to-end模式下agent向collector發送數據失敗後再次發送的間隔時長,默認60000(毫秒),建議至少是flume.collector.roll.millis的兩倍 |
flume.agent.failover.backoff.initial |
當primary sink(可以認爲是第一collector)故障後,重啓primary sink的一個延遲時間,在此期間,agent將把數據發送到secondary sink(可能是第二collector) |
flume.agent.failover.backoff.max |
在一定時限內嘗試鏈接故障節點失敗後,agent將把數據轉發向備用節點 |
4、collector
flume.collector.event.host |
默認collector地址 |
flume.collector.port |
默認collector端口 |
flume.collector.dfs.dir |
最終數據發向目錄(默認),可以是本地,可以是hdfs,默認是/tmp |
flume.collector.dfs.compress.codec |
壓縮格式GzipCodec, DefaultCodec (deflate), BZip2Codec,默認是None |
flume.collector.roll.millis |
hdfs文件切換(關閉後新建)的時長 |
flume.collector.output.format |
collector發送數據格式avro, avrojson(默認), avrodata… |
5、master
flume.master.servers |
用逗號分隔多個master地址列表 |
flume.master.store |
master配置存儲方式(zookeeper/memory) zookeeper保證master的配置在多master節點之間同步,memory則保存在內存中,其配置隨着master宕機而丟失 |
flume.master.serverid |
master的唯一標識 |
flume.master.http.port |
http端口 |
flume.master.heartbeat.missed.max |
判斷節點失效的最大未達心跳數 |
flume.master.savefile |
當前flume配置文件的路徑,默認conf/current.flume |
flume.master.savefile.autoload |
啓動時是否加載current.flume,默認false |
flume.master.gossip.period |
master通信週期(毫秒) |
flume.master.heartbeat.rpc |
THRIFT/AVRO |
flume.event.rpc |
THRIFT/AVRO |
flume.report.server.rpc.type |
THRIFT/AVRO |
6、zookeeper
flume.master.zk.logdir |
zookeeper日誌路徑 |
7、thrift
flume.thrift.socket.timeout.ms |
thrift網絡連接超時時間(毫秒) |
command shell(flume command)
help |
幫助 |
connect master:port |
登錄master |
config logicalnode source sink |
爲邏輯節點配置一個source到sink的映射 |
getnodestatus |
獲得節點狀態(HELLO, CONFIGURING, ACTIVE, IDLE, ERROR, DECOMMISSIONED, LOST ) HELLO, node啓動時 CONFIGURING, node被配置後 ACTIVE, 一個event從source送達到sink IDLE, source中所有evnet發送完畢後 ERROR, 節點故障退出,數據沒有flush DECOMMISSIONED, node被master移除 LOST, master長時間未收到node心跳 |
getconfigs |
獲得配置 |
getmappings [physical node] |
如果physical node參數被省略,將顯示所有logical node到physical node的映射關係 |
exec |
同步執行命令 |
Source file |
執行腳本. |
submit |
異步執行命令 |
wait ms [cmdid] |
設定一個時間,週期檢查命令進程的狀態(success or failure) |
waitForNodesActive ms node1 [node2 […]] |
設定一個時間,檢查node是否處於使用(configuring, active)狀態 |
waitForNodesDone ms node1 [node2 […]] |
設定一個時間,檢查node是否處於未用(IDLE, ERROR, LOST)狀態 |
quit |
退出 |
command shell(exec & submit command)
雙引號 |
包含轉義字符的java string |
單引號 |
能引住除單引號之外的所有字符 |
noop |
touch master, 不做操作 |
config logicalnode source sink |
爲邏輯節點配置source到sink的映射 |
multiconfig flumespec |
|
unconfig logicalnode |
取消邏輯節點的配置,影響master調整故障轉移列表(failover list) |
refreshAll logicalnode |
刷新 |
save filename |
保存current configuration到master硬盤 |
load filename |
從master中加載current configuration |
map physicalnode logicalnode |
配置物理節點到邏輯節點的映射關係,master的配置將被同步到logicalnode |
spawn physicalnode logicalnode |
恢復 |
decommission logicalnode |
|
unmap physicalnode logicalnode |
取消映射 |
unmapAll |
全部取消 |
purge logicalnode |
清除狀態,類似重啓一個logical node, 適用於(DECOMMISSIONED、 LOST)狀態 |
purgeAll |
清除所有logical node的狀態 |
Flume Source
1、Flume’s Tiered Event Sources
collectorSource[(port)] |
Collector source,監聽端口匯聚數據 |
autoCollectorSource |
通過master協調物理節點自動匯聚數據 |
logicalSource |
邏輯source,由master分配端口並監聽rpcSink |
2、Flume’s Basic Sources
null |
|
console |
監聽用戶編輯歷史和快捷鍵輸入,只在node_nowatch模式下可用 |
stdin |
監聽標準輸入,只在node_nowatch模式下可用,每行將作爲一個event source |
rpcSource(port) |
由rpc框架(thrift/avro)監聽tcp端口 |
text("filename") |
一次性讀取一個文本,每行爲一個event |
tail("filename"[, startFromEnd=false]) |
每行爲一個event。監聽文件尾部的追加行,如果startFromEnd爲true,tail將從文件尾讀取,如果爲false,tail將從文件開始讀取全部數據 |
multitail("filename"[, file2 [,file3… ] ]) |
同上,同時監聽多個文件的末尾 |
tailDir("dirname"[, fileregex=".*"[, startFromEnd=false[, recurseDepth=0]]]) |
監聽目錄中的文件末尾,使用正則去選定需要監聽的文件(不包含目錄),recurseDepth爲遞歸監聽其下子目錄的深度 |
seqfile("filename") |
監聽hdfs的sequencefile,全路徑 |
syslogUdp(port) |
監聽Udp端口 |
syslogTcp(port) |
監聽Tcp端口 |
syslogTcp1(port) |
只監聽Tcp端口的一個鏈接 |
execPeriodic("cmdline", ms) |
週期執行指令,監聽指令的輸出,整個輸出都被作爲一個event |
execStream("cmdline") |
執行指令,監聽指令的輸出,輸出的每一行被作爲一個event |
exec("cmdline"[, aggregate=false[,restart=false[,period=0]]]) |
執行指令,監聽指令的輸出,aggregate如果爲true,整個輸出作爲一個event如果爲false,則每行作爲一個event。如果restart爲true,則按period爲週期重新運行 |
synth(msgCount,msgSize) |
隨即產生字符串event,msgCount爲產生數量,msgSize爲串長度 |
synthrndsize(msgCount,minSize,maxSize) |
同上,minSize – maxSize |
nonlsynth(msgCount,msgSize) |
|
asciisynth(msgCount,msgSize) |
Ascii碼字符 |
twitter("username","pw"[,"url"]) |
尼瑪twitter的插件啊 |
irc("server",port, "nick","chan") |
|
scribe[(+port)] |
Scribe插件 |
report[(periodMillis)] |
生成所有physical node報告爲事件源 |
Flume Sinks
1、Flume’s Collector Tier Event Sinks
collectorSink( "fsdir","fsfileprefix",rollmillis) |
collectorSink,數據通過collector匯聚之後發送到hdfs, fsdir 是hdfs目錄,fsfileprefix爲文件前綴碼 |
2、Flume’s Agent Tier Event Sinks
agentSink[("machine"[,port])] |
Defaults to agentE2ESink,如果省略,machine參數,默認使用flume.collector.event.host與flume.collector.event.port作爲默認collecotr(以下同此) |
agentE2ESink[("machine"[,port])] |
執着的agent,如果agent發送event沒有收到collector成功寫入的狀態碼,該event將被agent重複發送,直到接到成功寫入的狀態碼 |
agentDFOSink[("machine" [,port])] |
本地熱備agent,agent發現collector節點故障後,不斷檢查collector的存活狀態以便重新發送event,在此間產生的數據將緩存到本地磁盤中 |
agentBESink[("machine"[,port])] |
不負責的agent,如果collector故障,將不做任何處理,它發送的數據也將被直接丟棄 |
agentE2EChain("m1[:_p1_]" [,"m2[:_p2_]"[,…]]) |
指定多個collector提高可用性。 當向主collector發送event失效後,轉向第二個collector發送,當所有的collector失敗後,它會非常執着的再來一遍... |
agentDFOChain("m1[:_p1_]"[, "m2[:_p2_]"[,…]]) |
同上,當向所有的collector發送事件失效後,他會將event緩存到本地磁盤,並檢查collector狀態,嘗試重新發送 |
agentBEChain("m1[:_p1_]"[, "m2[:_p2_]"[,…]]) |
同上,當向所有的collector發送事件失效後,他會將event丟棄 |
autoE2EChain |
無需指定collector, 由master協調管理event的流向 |
autoDFOChain |
同上 |
autoBEChain |
同上 |
3、Flume’s Logical Sinks
logicalSink("logicalnode") |
4、Flume’s Basic Sinks
在不使用collector收集event的情況下,可將source直接發向basic sinks
null |
null |
console[("formatter")] |
轉發到控制檯 |
text("txtfile" [,"formatter"]) |
轉發到文本文件 |
seqfile("filename") |
轉發到seqfile |
dfs("hdfspath") |
轉發到hdfs |
customdfs("hdfspath"[, "format"]) |
自定義格式dfs |
+escapedCustomDfs("hdfspath", "file", "format") |
|
rpcSink("host"[, port]) |
Rpc框架 |
syslogTcp("host"[,port]) |
發向網絡地址 |
irc("host",port, "nick", "chan") |