2013-05-26 94 views
1

我正在試圖用水槽水槽運行水槽。 HDFS的是在不同的機器上運行正常,我甚至可以從水槽機HDFS進行交互,但是當我運行水槽和事件發送到它,我得到以下錯誤:水槽和遠程hdfs水槽的錯誤

2013-05-26 14:22:11,399 (SinkRunner-PollingRunner-DefaultSinkProcessor) [WARN - org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:456)] HDFS IO error 
java.io.IOException: Callable timed out after 25000 ms 
    at org.apache.flume.sink.hdfs.HDFSEventSink.callWithTimeout(HDFSEventSink.java:352) 
    at org.apache.flume.sink.hdfs.HDFSEventSink.append(HDFSEventSink.java:727) 
    at org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:430) 
    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(Thread.java:679) 
Caused by: java.util.concurrent.TimeoutException 
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:258) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:119) 
    at org.apache.flume.sink.hdfs.HDFSEventSink.callWithTimeout(HDFSEventSink.java:345) 
    ... 5 more 

再次,conectivity不一個問題,因爲我可以使用hadoop命令行與hdfs進行交互(flume機器不是datanode)。 最奇怪的部分是,在殺死flume之後,我可以看到tmp文件是在hdfs中創建的,但是它是空的(並且.tmp擴展名仍然存在)。

任何想法爲什麼會發生這種情況?非常感謝!

回答

0

檢查3件事情,如果你的防火牆關閉,即iptables應該停止。其次,財產價值agent.sinks.hdfs-sink.hdfs.path = hdfs://PUBLIC_IP:8020/user/hdfs/flume而不是私人IP。 並更改 agent.sinks.hdfs-sink.hdfs.callTimeout = 180000,因爲默認值爲10000毫秒,這對HDFS的反應時間非常短。

謝謝, 希爾帕

+0

嗨希爾帕,感謝您的信息。不幸的是,我無法檢查,因爲自發布問題以來,我已經走了很長一段路。希望它對任何有類似問題的人都有幫助。 – dibits

+0

是的..那是我的意圖。 – TextShilpa