【发布时间】:2015-09-08 14:59:04
【问题描述】:
我正在尝试使用 Flume 将我的访问日志发送到 Spark 集群。但是有很多限制迫使我编写自定义应用程序(或 Flume 源)来读取日志文件。
我要做的是让 Flume 客户端向这个源发出信号,以防它无法将数据写入接收器。由于我们经常有长时间的网络中断,并且没有足够的磁盘空间来在磁盘上排队失败的日志,直到网络备份。相反,我想“告诉”源停止阅读日志,直到网络启动,然后“告诉”它重新开始。但到目前为止,我还没有在文档中看到任何关于错误的回调。
有没有我可以在不重新发明轮子的情况下实现这样的场景?
【问题讨论】:
-
您使用的是哪种源类型?您是将日志文件复制到 HDFS 还是使用 AvroSink 将输出流式传输到 SparkStreaming?您的场景实际上是 Flume 旨在处理的,但您应该对您的配置提供更深入的了解,以便我们为您提供指导。也许你的 flume.conf 的副本就可以了。
-
啊,抱歉,忘了说我正在使用 SparkStreaming。因此,我将日志推送到 Spark 上的 Avro 接收器。我只需要保证网络中断后流会自动继续,而不会在中断期间复制磁盘上的日志(正常访问日志文件 + Flume 磁盘缓冲)。
标签: logging apache-spark flume log-shipping