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