gpt4 book ai didi

hadoop - 用于日志分析的 Amazon MapReduce 最佳实践

转载 作者:可可西里 更新时间:2023-11-01 14:14:07 24 4
gpt4 key购买 nike

我正在解析由 Apache、Nginx、Darwin(视频流服务器)生成的访问日志,并按日期/推荐人/用户代理汇总每个已交付文件的统计信息。

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

现在我已经准备好使用映射器和缩减器来处理我的数据并使用以下流程测试整个过程:

  • 将映射器、reducer 和数据上传到 Amazon S3
  • 配置适当的作业并成功处理
  • 将聚合结果从 Amazon S3 下载到我的服务器,并通过运行 CLI 脚本将它们插入 MySQL 数据库

我已经根据 Internet 上有关 Amazon ERM 的数千个教程手动完成了这项工作。

接下来我该做什么?自动化此过程的最佳方法是什么?

  • 我应该通过 API 控制 Amazon EMR jobTracker 吗?
  • 如何确保我的日志不会被处理两次?
  • 将处理过的文件移动到存档的最佳方法是什么?
  • 将结果插入 PostgreSQL/MySQL 的最佳方法是什么?
  • 应如何在输入/输出目录中布置作业的数据?
  • 我是否应该在每次使用 API 时创建一个新的 EMR 作业?
  • 将原始日志上传到 Amazon S3 的最佳方法是什么?
  • 任何人都可以分享他们的数据处理流程设置吗?
  • 如何控制文件上传和作业完成?

我认为本主题对许多尝试使用 Amazon Elastic MapReduce 处理访问日志但无法找到好的 Material 和/或最佳实践的人很有用。

UPD:这里要澄清的是最后一个问题:

由 Amazon Elastic MapReduce 提供支持的日志处理的最佳实践是什么?

相关帖子:

Getting data in and out of Elastic MapReduce HDFS

最佳答案

这是一个非常开放的问题,但您可以考虑以下一些想法:

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

希望这能给你一些线索。

关于hadoop - 用于日志分析的 Amazon MapReduce 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9838652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com