8

我解析由Apache,Nginx,Darwin(视频流服务器)生成的访问日志,并按日期/ referrer/useragent为每个交付文件汇总统计信息。亚马逊MapReduce日志分析的最佳实践

每小时产生大量日志,这个数字在不久的将来可能会急剧增加 - 所以通过Amazon Elastic MapReduce以分布式方式处理这类数据听起来很合理。

现在我已经准备好与映射器和减速器来处理我的数据,并与下面的流程测试的全过程:

  • 上传映射器,减速器和数据到Amazon S3
  • 配置合适的工作,处理它成功地
  • 下载从Amazon S3汇总结果到我的服务器,并插入他们到MySQL数据库运行CLI脚本

我已经d根据成千上万的互联网上关于亚马逊企业风险管理的教程可以手动获得。

接下来应该做什么?什么是使这个过程自动化的最佳方法?

什么是常见的做法:

  • 使用cron通过API来控制亚马逊EMR JobTracker的?
  • 如何确保我的日志不会被处理两次?
  • 我应该通过我自己的自定义脚本来控制移动/删除已处理/结果文件吗?
  • 将结果插入到PostgreSQL/MySQL中的最佳方法是什么?
  • 我应该为每个作业创建不同的“输入”/“输出”目录还是为所有作业使用相同的目录?
  • 我应该每次通过API创建一个新作业吗?
  • 什么是将原始日志上传到Amazon S3的最佳方法?我查看了Apache Flume,但我不确定这是我需要的,只要我不需要实时日志处理即可。
  • 如何控制来自Apache的新日志部分,nginx是否准备好上传到亚马逊? (日志旋转?)
  • 任何人都可以分享他们的数据处理流程的设置?
  • 如何控制文件上传和作业完成?

当然在大多数情况下,它取决于您的基础架构和应用程序体系结构。

当然我可以用我的自定义解决方案来实现这一切,可能会重新投入很多已被别人使用的东西。

但是那里应该是我想熟悉的一些常见做法。

我认为,这个话题可能是许多人谁试图处理与亚马逊弹性MapReduce访问日志是有用的,但没有能够找到的有关最佳做法,好的材料来处理。

UPD:只是在此澄清的是单一的最后一个问题:

什么是日志处理的最佳实践搭载亚马逊弹性MapReduce?

相关文章:

Getting data in and out of Elastic MapReduce HDFS

+2

其实我觉得这是一个问题的问题太多了。但其中一些真的很有趣。 – 2012-03-23 12:06:18

+0

是的,实际上只有一个问题:我们可以在哪里找到有关日志分析的Amazon MapReduce最佳实践的资料?更新了描述。 – webdevbyjoss 2012-03-23 12:40:01

回答

3

这是一个非常非常大开的问题,但这里有一些想法,你可以考虑:

  • 使用Amazon SQS:这是一个分布式队列,对于工作流程管理非常有用,您有一个过程,一旦有日志可用就写入队列,另一个从中读取数据,处理队列消息中描述的日志,并在完成处理时将其删除。这将确保日志只处理一次。
  • Apache的水槽,你mentionned是日志聚合非常有用的。即使你不需要实时性,这也是你应该考虑的事情,因为它至少为你提供了一个标准化的聚合过程。
  • Amazon最近发布SimpleWorkFlow。我刚开始研究它,但这听起来很有希望管理数据管道的每一步。

希望能给你一些线索。