Apache-Spark 作为日志存储

Posted

技术标签:

【中文标题】Apache-Spark 作为日志存储【英文标题】:Apache-Spark as log store 【发布时间】:2014-08-09 08:43:02 【问题描述】:

关于使用 apache-spark 存储我们的应用程序日志我有几个问题(是的,将日志存储在 apache-spark 中,而不是存储 apache-spark 创建的日志)

1) 在 apache-spark 中存储(当然还有分析)日志是产品的一个很好的用例吗?只是寻找“是的,取决于你的意思是好的” - 或“不,它不太适合经典的日志存储/分析,使用 ElasticSearch”

2) 将新日志从我们的应用程序写入 Spark 集群的最佳方式是什么? https://spark.apache.org/docs/0.9.0/streaming-programming-guide.html 提到“可以从……普通的旧 TCP 套接字摄取数据”但我无法找到有关如何从 TCP 套接字打开/摄取数据的指南。

3) 如果我们在我们的应用程序中使用 logback,那么定义什么正确的 appender 来将日志保存到 spark 集群?

我意识到这些问题是相当高的水平,所以只是寻找指导以了解我是否走在正确的轨道上,也许还有一些文章链接可以帮助我进一步理解 - 而不是对相当大的问题的详细实施!

谢谢

【问题讨论】:

【参考方案1】:

是的,Spark 可以很好地用于日志挖掘。

    这取决于您的分析内容 - 如果您只要做查找和 greps,那么 ElasticSearch 也可能适合,但如果您希望做一些更复杂的事情,那么 Spark 会更好。 Spark 的优点在于它的灵活性。

    再次取决于您的分析以及何时需要该分析。如果您想要一个实时仪表板,那么可以尝试找到一种使用 SparkStreaming 的方法。如果您只是每小时/每天更新一次,那么只需写入 hdfs 并在 cron 中粘贴 Spark 作业。

    我推荐 Apache Flume,这样您就可以将日志直接写入 HDFS http://flume.apache.org/

是的,我会说你在正确的轨道上。

【讨论】:

非常感谢,这正是我正在寻找的指导类型。如果我走水槽路线,我是否应该使用诸如logging.apache.org/log4j/2.x/log4j-flume-ng 之类的附加程序? @brent 是的,我想是的。

以上是关于Apache-Spark 作为日志存储的主要内容,如果未能解决你的问题,请参考以下文章

MySQL存储日志并使用Loganalyzer作为前端展示

Kafka日志存储详解

Oracle定时任务执行存储过程备份日志记录表

LC3视角:Kubernetes下日志采集存储与处理技术实践

如何将 mule(基于 Java)日志推送到 Prometheus 存储?

统一日志检索部署(eslogstashkafkaflume)