【问题标题】:How to filter S3 files as input for Amazon EMR?如何过滤 S3 文件作为 Amazon EMR 的输入?
【发布时间】:2015-11-07 07:10:49
【问题描述】:

我正在尝试运行 Amazon EMR Hadoop 进程,该进程将处理 S3 存储桶中的 CloudFront 日志。由于 CloudFront 在同一个存储桶中生成大量日志,如何过滤日志文件而不为 S3 访问产生额外带宽?

【问题讨论】:

  • 提供有关您要过滤的位置的更多信息。您使用亚马逊下载日志文件的频率如何?您或许可以使用 CloudFront 上的 API 来过滤日志文件。
  • 某种每天运行的 EMR 流程。我想检索当天的所有日志并将它们用作 EMR 的输入。您想向我展示如何使用 CloudFront API 作为 EMR Hadoop 的输入吗?

标签: amazon-web-services amazon-emr


【解决方案1】:

我发现我可以使用FileSystem.globStatus() 快速过滤来自 CloudFront 日志存储桶的文件:

FileSystem fs = new Path("s3://logs").getFileSystem(conf);
for (FileStatus fileStatus: fs.globStatus("s3://logs/prefix-2015-11-01*")) {
   if (fileStatus.isFile()) {
      FileInputFormat.addInputPath(myJob, fileStatus.getPath());
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 2011-11-21
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    相关资源
    最近更新 更多