2013-12-23 25 views
1

我有3個代理。 1在使用內存通道的Windows上運行,而其他2在Linux上使用文件通道從windows代理獲取數據並將其放入Hbase。水槽代理無法提供事件

任何人可以建議爲什麼會發生以下錯誤,以及停止它的步驟是什麼?

2013-12-23 14:50:15,290 (SinkRunner-PollingRunner-DefaultSinkProcessor) [DEBUG - org.apache.flume.sink.AvroSink.destroyConnection(AvroSink.java:199)] Avro sinksink1 closing avro client: NettyAvroRpcClient { host: 192.168.101.232, port: 3001 } 
2013-12-23 14:50:15,290 (SinkRunner-PollingRunner-DefaultSinkProcessor) [ERROR - org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:160)] Unable to deliver event. 
Exception follows.org.apache.flume.EventDeliveryException: Failed to send events 
     at org.apache.flume.sink.AvroSink.process(AvroSink.java:325) 
     at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68) 
     at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147) 
     at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.flume.EventDeliveryException: NettyAvroRpcClient { host: 192.168.101.232, port: 3001 }: Failed to send batch 
     at org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:236) 
     at org.apache.flume.sink.AvroSink.process(AvroSink.java:309)  ... 3 more 
Caused by: org.apache.flume.EventDeliveryException: NettyAvroRpcClient { host: 192.168.101.232, port: 3001 }: Handshake timed out after 20000ms 
     at org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:280) 
     at org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:224) ... 4 more 
Caused by: java.util.concurrent.TimeoutException 
     at java.util.concurrent.FutureTask.get(Unknown Source) 
     at org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:278) 

以下是我的Windows配置文件

a1.sources = source1 
a1.channels = channel1 channel2 
a1.sinks = sink1 sink2 

a1.sources.source1.handler = com.flume.handler.DynamicJSONHandler 
a1.sources.source1.type = org.apache.flume.source.http.HTTPSource 
a1.sources.source1.bind = 192.168.101.29 
a1.sources.source1.port = 2001 

a1.channels.channel1.type = org.apache.flume.channel.MemoryChannel 
a1.channels.channel1.capacity = 1000 
a1.channels.channel1.transactionCapacity = 1000 

a1.sinks.sink1.type = org.apache.flume.sink.AvroSink 
a1.sinks.sink1.hostname = 192.168.101.232 
a1.sinks.sink1.port = 3001 

a1.channels.channel2.type = org.apache.flume.channel.MemoryChannel 
a1.channels.channel2.capacity = 1000 
a1.channels.channel2.transactionCapacity = 1000 

a1.sinks.sink2.type = org.apache.flume.sink.AvroSink 
a1.sinks.sink2.hostname = 192.168.101.233 
a1.sinks.sink2.port = 3001 

a1.sources.source1.channels = channel1 channel2 
a1.sinks.sink1.channel = channel1 
a1.sinks.sink2.channel = channel2 

回答

4

AvroSink是指將數據寫入其中有一個Avro的來源,具體來源聽另一個水槽劑。 Avro Sink啓動與其連接的源的握手。但看起來握手會在20秒後超時 - 因此您的網絡很可能面臨主要的延遲問題。您是否看到運行源代理的任何問題?

+0

與此同時,我還沒有收到任何問題在我的源代理。 –

+0

但是當我減少Avro Sink的負載時,錯誤消失了。謝謝你的回覆 –

+0

@Shah你如何減少負荷,你能解釋一下嗎? – Alsphere