2012-12-12 33 views

回答

7

在flume-ng中,您可以定義所有連接到一個通道的所謂「接收器」(事件使用者)組,併爲該組指定「故障轉移」策略,因此如果其中一個接收器失敗,將被重定向到另一個。

假設我們有兩個水槽 - main_sinkbackup_sink,並且都配置爲使用來自一個信道事件,並把事件傳送到某些目標。我們設置優先級爲main_sink大於優先級backup_sink,所以Flume會將事件從頻道轉發到main_sink,只要它有效。但是,如果main_sink失敗,Flume會將其歸入故障接收池,並在其中分配冷卻期。同時來自頻道的事件將被轉發至backup_sink

完整的示例可能看起來像這樣:

# channels 
agent.channels = mem_channel 
agent.channels.mem_channel.type = memory 

# sources 
agent.sources = event_source 
agent.sources.event_source.type = avro 
agent.sources.event_source.bind = 127.0.0.1 
agent.sources.event_source.port = 10000 
agent.sources.event_source.channels = mem_channel 

# sinks 
agent.sinks = main_sink backup_sink 

agent.sinks.main_sink.type = avro 
agent.sinks.main_sink.hostname = 127.0.0.1 
agent.sinks.main_sink.port = 10001 
agent.sinks.main_sink.channel = mem_channel 

agent.sinks.backup_sink.type = avro 
agent.sinks.backup_sink.hostname = 127.0.0.1 
agent.sinks.backup_sink.port = 10002 
agent.sinks.backup_sink.channel = mem_channel 

# sink groups  
agent.sinkgroups = failover_group 
agent.sinkgroups.failover_group.sinks = main_sink backup_sink 
agent.sinkgroups.failover_group.processor.type = failover 
agent.sinkgroups.failover_group.processor.priority.main_sink = 10 
agent.sinkgroups.failover_group.processor.priority.backup_sink = 5 

您可以找到有關Flume User Guide主題的更多細節。

+0

謝謝。我會嘗試併發布結果。 –

+0

即使使用這些設置,我仍無法使用'netstat'命令查看指定端口上運行的接收器。 另外,是否可以讓(故障轉移)接收器在不同的服務器上運行? –

+0

還有一件事,我試圖使用AsyncHbaseSink。不是Avro同步。 –