Amazon MapReduce 日志分析最佳实践

2024-04-21

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

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

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

  • 将映射器、缩减器和数据上传到 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 提供支持的日志处理最佳实践有哪些?

相关文章:

将数据传入和传出 Elastic MapReduce HDFS https://stackoverflow.com/questions/7701678/getting-data-in-and-out-of-elastic-mapreduce-hdfs


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

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

希望能给你一些线索。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Amazon MapReduce 日志分析最佳实践 的相关文章

  • 如何对 RDD 进行分区

    我有一个文本文件 其中包含大量由空格分隔的随机浮动值 我正在将此文件加载到 scala 中的 RDD 中 这个RDD是如何分区的 另外 是否有任何方法可以生成自定义分区 以便所有分区都具有相同数量的元素以及每个分区的索引 val dRDD
  • 如何使用 Fluent 为 Elasticsearch 添加时间戳和密钥

    我已经配置了 fluidd 和 elasticsearch 它们都工作正常 我正在跟踪一个文件 然后读取其数据并将其发布到elasticsearch 下面是json数据 time 2018 05 14T11 37 30 339593 Dat
  • /proc/kmsg 和 dmsg 有什么区别?

    我们通常这样做cat proc kmsg or dmesg从用户空间查看内核日志 我明白了dmesg是一个循环缓冲区 它从kmsg 但是kmsg也不是循环缓冲区 它们之间有什么区别和联系呢 宽松地说 dmesg 是一个转储 proc kms
  • 以不同用户身份运行 MapReduce 作业

    我有一个与 Hadoop 交互的 Web 应用程序 Cloudera cdh3u6 特定的用户操作应在集群中启动新的 MapReduce 作业 该集群不是一个安全集群 但它使用简单的组身份验证 因此 如果我以自己的身份通过 ssh 连接到它
  • 按带宽限制成员资格

    我刚刚将 Codeigniter 应用程序部署到 Amazon EC2 使用 S3 作为媒体 使用 RDS 作为 MySQL 我需要根据使用的带宽量限制用户帐户访问 帐户将基于带宽 例如基本帐户 x 每月最多 20GB 等 但是我不知道最好
  • 比manage.pycollectstatic(带s3boto存储后端)更快的替代方案可以将静态文件同步到s3?

    我一直使用 s3boto 的 S3BotoStorage 作为我的静态文件后端 并使用 manage pycollectstatic 将文件同步到我的 aws s3 存储桶 暂存和生产 效果很好 然而 它的速度却慢得令人痛苦 除了我自己的静
  • Amazon S3 对象复制

    各位 我可能读到的内容有所不同 但是我一直认为 us east 中的对象和存储桶不会自动复制到 us west 但是 在阅读文档时 我看到两个相互矛盾的陈述 From http aws amazon com s3 http aws amaz
  • 使用 asp.net MVC 拖放上传到 aws s3

    我在我正在处理的基本 mvc 项目上上传文件时遇到一些问题 我有一个拖 放功能 我想连接到 aws s3 我可以使用当前应用程序将文件放入本地文件夹中 并按照此处的步骤操作 gt 使用 c Sharp 将文件上传到亚马逊 s3 非常简单 h
  • 更改使用文本文件的 SSIS 日志提供程序创建的文件的文件编码

    我是 SSIS 新手 我已经设计了一个包并为文本文件配置了 SSIS 日志提供程序 这工作正常并且日志文件已成功生成 我们有一个监控团队 他们使用这个日志文件进行监控 他们无法读取日志文件 因为文件编码是 Unicode 格式 他们期望使用
  • Datadog 交易持续时间作为指标

    我们拥有来自不同服务且具有一个 CustomerID 的日志 SERVICE A CustomerID 11 Event start session Time 10 00 00 SERVICE B CustomerID 11 Event f
  • log4net 无法在 dll 中工作

    我目前在让 log4net 在特定 dll 中工作时遇到问题 我目前正在我的测试应用程序调用的其他 dll 中使用 log4net 并且日志记录在这些 dll 以及我的测试应用程序中工作正常 我遇到问题的正是这个特定的 dll 这是我遇到问
  • 将文件上传到S3的模拟测试用例

    我们如何模拟文件上传到 S3 我尝试过这样的事情 file mock mock MagicMock spec File name FileMock mock patch storages backends s3boto S3BotoStor
  • 自动提取S3中的.gz文件

    我正在尝试找到一种解决方案 以便在 ALB 日志文件自动从 ALB 上传到 S3 时提取 gz 格式的 ALB 日志文件 我的桶结构是这样的 log bucket alb 1 AWSLogs account number elasticlo
  • apache2.4.7 未将“404 Not Found”页面记录到 error.log

    我见过有关如何做的问题not将404错误记录到错误日志中 这是相反的 由于某种原因 我的 apache 安装没有将 404 错误记录到我的错误日志 或与此相关的访问日志 我已经正确设置了错误日志并看到了错误 但是当我访问不存在的页面时 我只
  • 如何使用 symfony / gauferette / VichUploaderBundle 将文件上传到 Google Cloud Storage

    早上好 我正在上传我的文件locally通过VichUploaderBundle 每件事都很完美 现在我不想再在本地存储我的文件 我想将它们存储在谷歌云存储 我找到KnpGaufrette捆绑包可用于在云中存储文件 那么 有没有关于如何配置
  • MapReduce 中的分区到底是如何工作的?

    我认为我总体上对 MapReduce 编程模型有一定的了解 但即使在阅读了原始论文和其他一些来源之后 我仍然不清楚许多细节 特别是关于中间结果的分区 我将快速总结到目前为止我对 MapReduce 的理解 我们有一个可能非常大的输入数据集
  • 将文件从 url 上传到 s3 存储桶

    我有一个在 Heroku 中运行的 Nodejs 程序 它为我提供了文件的 URL 这些文件需要存储在 s3 存储桶中 据我了解 无法将文件从 url 直接上传到 s3 存储桶 您建议我如何将文件从 URL 获取到 s3 存储桶 我见过有关
  • 如何使用 Rails 应用程序中的 s3 在存储桶之间复制文件?

    我目前正在开发一个 Rails 应用程序 尝试将视频从 s3 中的一个存储桶复制 移动到另一个存储桶 但是我在 Rails 应用程序上不断收到代理错误 502 在杂种日志中 它显示 无法分配内存 一旦发生此错误 应用程序就会终止 我们必须重
  • 日志文件错误:[配置] 没有适用的操作,当前 ElementPath 为 [[配置][配置]]

    我正在尝试按如下方式配置日志返回 但它向我抛出此错误 配置文件如下
  • 使用 Java 登录

    我通过执行以下代码在 java 中创建一个记录器 private static final String logFile File separator Log Files File separator Log Long toString S

随机推荐

  • 从 powershell 脚本调用可执行文件(带参数)

    我正在从 powershell 调用 zip 实用程序 但很难直接获取其参数 这是代码 if not test path C Program Files x86 7 Zip 7z exe throw C Program Files x86
  • 创建嵌套 ul li 的 PHP 函数?

    我正在尝试将一个小型 CMS 附加到我正在创建的网站 不过我遇到了一个小问题 CMS 使用 PHP 函数插入菜单 这些 PHP 函数创建 HTML 我希望使用的特定函数 treemenu 创建一个嵌套的 ul li 然后可将其用于下拉菜单
  • 如何更改此 html 用户表单上的日期格式

    我有将数据输入 mysql DB 的 html 表单 但在日期的输入字段中它具有以下格式 mm dd yyyy 但我更喜欢在输入日期时使用这种格式 dd mm yyyy 任何机构都可以帮助更改格式吗 这里是 HTML 表单 p Admiti
  • IDispatchEx 存在于哪里?

    找不到包含 IDispatchEx 接口的库 我想实现这个接口 但是找不到 有谁知道它在哪里吗 谢谢 保罗 如果您想编写一个实现的托管类IDispatchEx http msdn microsoft com en us library sk
  • 带有 Kafka 消费者的 Spring Boot 作业调度程序

    我正在开发一个 POC 我想使用来自 Kafka 主题 用户 的消息 尝试实现消费者应该从 Kafka 主题读取消息 一旦 spring boot 调度程序在预定时间或 cron 时间触发 那么我们应该开始从 kafka 主题中一一消费现有
  • 如何更改 richfaces 组合框提出的建议?

    我目前正在玩 richfaces 组合框 你可以检查是 我想知道是否有办法改变在组合框中提出建议的方式 而不是仅建议以同一字母开头的单词 而是建议具有以该字母或字母组合开头的其他单词的单词 这是演示中的示例 从当前的组合框中 如果我输入 M
  • WKWebView 评估 Javascript 而不重新加载页面

    目前我只能通过将 javascript 添加到 webview 的配置的 userContentController 并重新加载页面来弄清楚如何评估 javascript 如下所示 WKUserScript script WKUserScr
  • 如果
    中的操作字段有参数会发生什么?

    如果我在 HTML 中执行以下操作 是否会出现一个得到良好支持的常见行为
  • 如何在运行 Tensorflow 推理会话之前批处理多个视频帧

    我做了一个项目 基本上使用谷歌对象检测 API 和张量流 我所做的就是使用预先训练的模型进行推理 这意味着实时对象检测 其中输入是网络摄像头的视频流或使用 OpenCV 的类似内容 现在我得到了相当不错的性能结果 但我想进一步提高 FPS
  • 排序逻辑应该放在模型、视图还是控制器中? [关闭]

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个下拉列表 向最终用户显
  • 玩笑 beforeAll() 在多个测试文件之间共享

    我有一个 Node js 项目 正在使用 Jest 进行测试 我有几个具有相同设置要求的测试文件 以前 所有这些测试都在一个文件中 所以我只有一个beforeAll 执行常见设置 现在 随着测试分成多个文件 似乎我必须复制 粘贴它befor
  • AsyncPostBackTrigger 与 PostBackTrigger 有什么区别?

    AsyncPostBackTrigger 与 PostBackTrigger 有什么区别 默认情况下 UpdatePanel 内部的控件会导致部分页面更新 外部的控件会导致回发 使用这些触发器可以根据需要更改此行为 From http se
  • 每个有状态的中间 Stream API 操作是否都能保证新的源集合?

    以下陈述是否正确 The sorted 操作是 有状态中间操作 这意味着后续操作不再对后备集合进行操作 而是对内部状态进行操作 Source https www toptal com java top 10 most common java
  • 将 trunk 合并到 SVN 中的功能分支时,如何避免出现大量 svn:mergeInfo

    我试图通过将主干合并到分支中来保持功能分支最新 问题是 创建分支时存在的大约 2000 个文件 并且在分支和主干上都保持不变 除了 svn mergeinfo 之外什么都没有更新 该项目规模相当大 对我们的 SVN 历史记录的影响如此之大
  • Spring JPA + postgresql中模式之间动态切换数据源

    我必须按照以下方式修改现有应用程序的设计 根据上面的设计 每个项目都包含它自己的模式 并且映射表 project schema table 位于主模式下 所有模式都位于一个 Postgresql 数据库下 将来用户将为他们的新项目创建另一个
  • 从异步或同步 JavaScript 请求返回值

    下面的函数首先执行同步比较test 0 如果通过 则返回一些内容 如果不通过 则执行异步请求 我的目的是让后者返回一些其他内容 例如 来自后回调的内容 但知道我做的事情是错误的 在不将Ajax请求更改为同步的情况下 是否可以做到这一点 va
  • 单击按钮时显示和隐藏下拉列表?

    我正在使用一个按钮 单击它时 会打开一个下拉列表 并且箭头符号会发生变化 但我想再次单击按钮时隐藏下拉列表 意思是在单击按钮时交替显示和隐藏 我正在使用这个代码 protected void onCreate Bundle savedIns
  • Django:为什么这个自定义模型字段的行为不符合预期?

    以下字段旨在将货币格式化为两位小数 量化 可以看到它返回了一个
  • MS Access VBA SQL 查询调试选择案例

    在 MS Access 2013 VBA 中 我在此 SQL 字符串中遇到语法错误 strSQL INSERT INTO man year man year val year int main research area organisat
  • Amazon MapReduce 日志分析最佳实践

    我正在解析 Apache Nginx Darwin 视频流服务器 生成的访问日志 并按日期 引用者 用户代理聚合每个交付文件的统计信息 每小时都会生成大量日志 而且这个数字在不久的将来可能会急剧增加 因此通过 Amazon Elastic