【发布时间】:2014-10-01 06:54:54
【问题描述】:
我想使用 mrjob(使用 EMR)在 S3 中高效地处理大量数据。我可以以任何我想要的方式构建数据,但显然我想尽我所能发挥 EMR 在 S3 数据上运行的优势。
我的数据包含数百万个网页(假设每个 50K)。直观地说,创建一组 .tar.gz 文件(简称 .tgz)对我来说是有意义的,每个文件都有数千页,这样 .tgz 文件大小约为 2GB 左右。然后我想将这些 .tgz 文件加载到 S3 上并编写一个 mrjob 任务来处理这些(例如,10 个 EC2 实例)。
我很喜欢构建这些 .tgz 文件,因为它们代表了一种非常压缩的数据形式,因此它们应该最大限度地减少网络流量(大小以及传输延迟)。我也喜欢构建多个 .tgz 文件,因为我显然想利用我计划为该工作分配的多个 EMR 实例。
如果需要,我可以连接文件,这样我就可以避免归档 (tar) 步骤而只处理 .gz 文件,但将原始数据压缩然后压缩会更容易。
我是否以正确的方式考虑这一点?如果是,我如何配置/指定 mrjob 以解压缩和解压缩,以便实例仅处理其中一个 .tgz 文件的全部内容?
【问题讨论】:
标签: python amazon-web-services amazon-s3 emr mrjob