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 作为日志存储的主要内容,如果未能解决你的问题,请参考以下文章
LC3视角:Kubernetes下日志采集存储与处理技术实践