我正在解析由Apache、Nginx、Darwin(视频流服务器)生成的访问日志,并按日期/引荐人/用户代理聚合每个传递的文件的统计信息。
每小时产生大量日志,而且未来这个数字可能会急剧增加 - 因此通过Amazon Elastic MapReduce以分布式方式处理这种数据听起来很合理。
现在,我已经准备好使用映射器和减速器处理我的数据,并使用以下流程测试了整个过程:
- 将映射器、减速器和数据上传到Amazon S3 - 配置适当的作业并成功处理它 - 通过运行CLI脚本从Amazon S3下载聚合结果,并将它们插入到MySQL数据库中
我根据互联网上可谷歌的成千上万个关于Amazon ERM的教程手动完成了这一过程。
接下来我该怎么做?最佳方法是什么,可以自动化这个过程吗?
每小时产生大量日志,而且未来这个数字可能会急剧增加 - 因此通过Amazon Elastic MapReduce以分布式方式处理这种数据听起来很合理。
现在,我已经准备好使用映射器和减速器处理我的数据,并使用以下流程测试了整个过程:
- 将映射器、减速器和数据上传到Amazon S3 - 配置适当的作业并成功处理它 - 通过运行CLI脚本从Amazon S3下载聚合结果,并将它们插入到MySQL数据库中
我根据互联网上可谷歌的成千上万个关于Amazon ERM的教程手动完成了这一过程。
接下来我该怎么做?最佳方法是什么,可以自动化这个过程吗?
- 我应该通过API控制Amazon EMR jobTracker吗?
- 如何确保我的日志不会被处理两次?
- 将已处理的文件移动到归档的最佳方法是什么?
- 将结果插入PostgreSQL/MySQL的最佳方法是什么?
- 工作数据应该放置在输入/输出目录中的哪个位置?
- 每次使用API创建新的EMR作业吗?
- 将原始日志上传到Amazon S3的最佳方法是什么?
- 有人可以分享他们的数据处理流程设置吗?
- 如何控制文件上传和作业完成?
我认为这个主题对于许多试图使用Amazon Elastic MapReduce处理访问日志但无法找到好材料和/或最佳实践的人都很有用。
更新:只是为了澄清,这里是单一最终问题:
由Amazon Elastic MapReduce支持的日志处理的最佳实践是什么?
相关帖子: