S3 和 EMR 数据本地化 [关闭]
Posted
技术标签:
【中文标题】S3 和 EMR 数据本地化 [关闭]【英文标题】:S3 and EMR data locality [closed] 【发布时间】:2017-06-01 09:45:50 【问题描述】:MapReduce 和 HDFS 的数据本地化非常重要(Spark、HBase 也是如此)。我一直在研究 AWS 以及在他们的云中部署集群时的两个选项:
EC2 EMR + S3由于不同的原因,第二个选项似乎更有吸引力,其中最有趣的是能够单独扩展存储和处理以及在不需要时关闭处理(更正确的是,仅在需要时才打开它)。 This 是一个示例,说明了使用 S3 的优势。
困扰我的是数据局部性问题。如果数据存储在 S3 中,则每次运行作业时都需要将其拉到 HDFS。我的问题是 - 这个问题有多大,还值得吗?
让我感到欣慰的是,我只会在第一次提取数据,然后所有下一个作业都会在本地获得中间结果。
我希望从对此有实际经验的人那里得到答案。谢谢。
【问题讨论】:
非常好的问题,不主观,无缘无故关闭。 【参考方案1】:EMR 不会将数据从 S3 拉取到 HDFS。它在 S3 上使用自己的 HDFS 支持实现(就像您在实际的 HDFS 上操作一样)。 https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-fs.html
对于数据局部性,S3 是 RACK_LOCAL
到 EMR spark 集群。
【讨论】:
这完全有道理,但是实际上没有来自 aws 的文档确认 emr spark 的 s3 数据位置是RACK_LOCAL
...您找到了吗?【参考方案2】:
根据下面提到的来源,带有 EMRFS 的 EMR+S3 不维护数据局部性,不适合基于 SQL 等工具的分析处理。 RedShift 是此类计算和数据位于一处的用例的正确选择。请参考以下链接中的39:00至42:00:
https://youtu.be/08G9NfDETVE
https://databricks.com/blog/2017/05/31/top-5-reasons-for-choosing-s3-over-hdfs.html 中也提到了这一点。请参阅每美元的表现部分。
要了解 EMR 如何与 S3 配合使用,请参阅 KEVIN SCHMIDT 和 CHRISTOPHER PHILLIPS 编写的 Programming elastic map reduce book(第 1 章 Amazon Elastic MapReduce 与传统 Hadoop 安装部分)。
【讨论】:
以上是关于S3 和 EMR 数据本地化 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
AWS EMR 文件已存在:Hadoop 作业读取和写入 S3
如何将文件从 S3 复制到 Amazon EMR HDFS?