从 S3 加载 AWS EMR

Posted

技术标签:

【中文标题】从 S3 加载 AWS EMR【英文标题】:AWS EMR loading from S3 【发布时间】:2013-06-01 21:41:09 【问题描述】:

当使用 S3 存储桶作为输入源创建新的 EMR 作业时,数据是否会自动从 S3 复制到节点上的 HDFS 中?还是数据仅保留在 S3 中并在 map reduce 作业需要时读取?

我的印象是后者;但是,如果数据存储在 S3 中并在预置的 EC2 实例上完成处理,这是否不违反 map reduce 的基本原则:对数据进行本地处理?与更传统的系统相反:将数据移动到处理所在的位置。

在给定一个合理的大数据集(例如 1PB)的情况下,这种方法的相对含义是什么?集群启动时间是否更长?

【问题讨论】:

【参考方案1】:

你有两个选择。您可以直接从 Amazon S3 流式传输数据,也可以先将其复制到 HDFS,然后在本地进行处理。如果您只打算读取一次数据,则第一种方法很好。如果您的计划是多次查询相同的输入数据,那么您可能希望先将其复制到 HDFS。

是的,通过使用 S3 作为 MapReduce 的输入,您将失去数据局部性优化。此外,如果您的计划是使用 S3 作为 HDFS 的替代品,我建议您使用 S3 Block FileSystem 而不是 S3 Native FileSystem,因为它对文件大小施加了 5GB 的限制。

HTH

【讨论】:

AWS 不鼓励使用 s3bfs(块存储文件系统):docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/…

以上是关于从 S3 加载 AWS EMR的主要内容,如果未能解决你的问题,请参考以下文章

无法从 S3 存储桶(镶木地板文件)将数据加载到 EMR 上的猪中

EMR 5.28 无法在 s3 上加载镶木地板文件

为啥 AWS EMR 上的 Spark 不从应用程序 fat jar 加载类?

AWS s3 同步从 s3 复制到 EMR 很慢

将文件从 AWS EMR 集群中的映射器上传到 S3

AWS Glue - 从 sql server 表中读取并作为自定义 CSV 文件写入 S3