我正在开发 Flume,以 Spool Directory 作为源,HDFS 作为接收器,文件作为 channel 。执行 Flume 作业时。我遇到以下问题。内存 channel 工作正常。但我们需要使用文件 channel 来实现相同的功能。使用文件 channel 我遇到以下问题。
我已在 Flume.env.sh 文件中将 JVM 内存大小配置为 3GB。请让我知道我们需要执行的任何其他设置。
2016 年 1 月 20 日 20:05:27,099 错误 [SinkRunner-PollingRunner-DefaultSinkProcessor] (org.apache.flume.SinkRunner$PollingRunner.run:160) - 无法传递事件。出现异常。 java.lang.IllegalStateException: channel 已关闭 [ channel = Artiva-内存 channel ]。由于java.io.IOException:可用空间耗尽,仅剩余427515904字节,需要524288000字节
最佳答案
文件 channel 与内存无关,与HDD(磁盘)有关。这样的 channel 使用文件系统来存储数据。因此,请检查写入检查点文件和数据文件的磁盘中有多少可用空间(请查看 FileChannel 参数)。
关于flume - 使用文件 channel 耗尽水槽中的可用空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34917290/