hadoop - Flume 和远程 HDFS 接收器错误

标签 hadoop hdfs flume

我正在尝试使用 HDFS 接收器运行 Flume。 HDFS 在另一台机器上正常运行,我什至可以从 Flume 机器与 HDFS 交互,但是当我运行 Flume 并向其发送事件时,出现以下错误:

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

再说一遍,连接性不是问题,因为我可以使用 hadoop 命令行与 hdfs 交互(flume 机器不是数据节点)。 最奇怪的部分是,杀死 Flume 后,我可以看到 tmp 文件是在 hdfs 中创建的,但它是空的(并且 .tmp 扩展名仍然存在)。

关于为什么会发生这种情况有什么想法吗?非常感谢!

最佳答案

检查 3 件事,如果您的防火墙已关闭,即 iptables 应停止。其次,属性值agent.sinks.hdfs-sink.hdfs.path = hdfs://PUBLIC_IP:8020/user/hdfs/flume而不是私有(private)IP。 并改变 agent.sinks.hdfs-sink.hdfs.callTimeout = 180000 因为默认值为 10000 毫秒,这对于 HDFS 的 react 时间来说非常短。

谢谢, 希尔帕

关于hadoop - Flume 和远程 HDFS 接收器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16760233/

相关文章:

hadoop - 我们可以使用sqoop将数据从hadoop导出到csv吗

java - 如何使用 hadoop.mapreduce.lib.output.MultipleOutputs 使用 oozie 工作流创建目录结构?

java - 无法使用水槽从远程 HDFS 写入

hadoop - Apache Flume无法将文件从源复制到目标

java - 在 Java hdfs 中读取文件

linux - 异常如下-org.apache.flume.FlumeException : Unable to load source type: com. cloudera.flume

Hadoop 的容量调度程序 - 设置多个队列

hadoop - Apache Ambari 退休了。接下来是什么?

apache-spark - 为什么读取 parquet 文件时会出现 "is not a Parquet file"错误

java - Hadoop HDFS - 在虚拟机上执行 JAR 文件