2013-05-26 66 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