2

我已经设置了一个文件到文件 source/sink ,就像对基本水槽功能的测试一样。

我目前使用“exec”源,命令是“tail -F mytmpfile”。

在我的脚本中,我不断地回显 "....." >> mytmpfile ,这样尾部命令就构成了一个流。

但是,我开始在水槽日志中看到以下异常:

java.lang. IllegalStateException:通道关闭 [channel=c1]。由于 java.lang.NullPointerException: null at org.apache.flume.channel.file.FileChannel.createTransaction(FileChannel.java:353) at org.apache.flume.channel.BasicChannelSemantics.getTransaction(BasicChannelSemantics.java:122) at org.apache.flume.sink.RollingFileSink.process(RollingFileSink.java:183) at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68) at org.apache.flume.SinkRunner$PollingRunner.run( SinkRunner.java:147) 在 java.lang.Thread.run(Thread.java:662) 引起:在 org.apache.flume.channel.file.Log.writeCheckpoint(Log.java:895) 的 java.lang.NullPointerException在 org.apache.flume.channel.file.Log.replay(Log.java:406) 在 org.apache.flume.channel.file.FileChannel.start(FileChannel.java:

关于这个 NullPointerException 来自哪里的任何想法?从扫描代码中可以看出,它可能与丢失的文件夹或目录有关。但我在 git hub 分支上找不到确切的行。

这是使用 apache-flume-1.3.1.23-...

4

1 回答 1

2

过去我遇到过文件通道问题,通常归结为两个问题:

1) 如果您在同一个盒子上运行多个代理,请确保将它们配置为具有单独的dataDirscheckpointDir.

2) 在 Linux 机器上,检查您的 tmpfs 是否接近其容量。如果它越来越满,水槽会抱怨。尝试停止水槽代理,卸载 tmpfs,扩大它,重新安装并重新启动代理。

于 2013-05-20T15:16:31.273 回答