【问题标题】:Collect logs from Mesos Cluster从 Mesos 集群收集日志
【发布时间】:2015-06-30 00:01:38
【问题描述】:

我的团队正在 Amazon EC2 实例上部署一个新集群。 经过一番研究,我们决定使用 Apache Mesos 作为集群管理器,使用 Spark 进行计算。

我们问自己的第一个问题是,对于每个不同的框架,从所有机器收集日志的最佳方式是什么。 到目前为止,我们开发了一些自定义的 bash/python 脚本,它们从预定义的位置收集日志,压缩它们并将压缩文件发送到 S3。 这种轮换由 cron 作业激活,该作业每小时运行一次。

我一直在寻找“最好”(或标准)的方法来做到这一点。 我找到了Apache Flume,它也是用于日志的数据收集器,但我不明白如何将它集成到 Mesos 集群中以收集日志(以及用于 Spark)。

我发现this“类似”问题,但解决方案不是开源的或不再受支持。

是否有更好的方式来轮换日志或我缺少的标准方式?

非常感谢

【问题讨论】:

  • 你看过logstash(结合Elasticsearch和Kibana)吗? elastic.co/products/logstash它是开源的(apache 2)并受支持。
  • logstash 是一个非常不错的解决方案,但是在架构中添加 Elasticsearch 和 Kibana 会增加系统的复杂性(我们正在努力使其尽可能简单)

标签: logging apache-spark flume mesos


【解决方案1】:

对此没有完美的答案。如果您正在使用 Spark 并且对使用 Flume 感兴趣,您将不得不编写自定义 Flume -> Spark 接口,因为据我所知不存在。但是,您可以这样做:

  1. 使用 Flume 实时摄取日志数据。
  2. 让 Flume 使用自定义拦截器对日志数据进行预处理。
  3. 在预处理完成后让 Flume 写入 Kafka。
  4. 让 Spark 流从 Kafka 队列中读取以处理日志并运行您的计算。

据推测,Spark Streaming 尚未达到黄金时段的制作等级,但这是一种潜在的解决方案。

【讨论】:

  • 感谢您的回答。正如您所指出的,使用 Flume 收集 Spark 日志是编写自定义 Spark-Flume 接口所必需的。但是,对于使用 Flume TO apache Spark 进行日志摄取,我找到了 this 集成指南
猜你喜欢
  • 2023-03-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
  • 2016-06-13
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
相关资源
最近更新 更多