【问题标题】:S3 and EMR data locality [closed]S3 和 EMR 数据本地化 [关闭]
【发布时间】:2017-06-01 09:45:50
【问题描述】:

MapReduce 和 HDFS 的数据本地化非常重要(Spark、HBase 也是如此)。我一直在研究 AWS 以及在他们的云中部署集群时的两个选项:

  • EC2
  • EMR + S3

由于不同的原因,第二个选项似乎更有吸引力,其中最有趣的是能够单独扩展存储和处理以及在不需要时关闭处理(更正确的是,仅在需要时才打开它)。 This 是一个示例,说明了使用 S3 的优势。

困扰我的是数据局部性问题。如果数据存储在 S3 中,则每次运行作业时都需要将其拉到 HDFS。我的问题是 - 这个问题有多大,还值得吗?

让我感到欣慰的是,我只会在第一次提取数据,然后所有下一个作业都会在本地获得中间结果。

我希望从对此有实际经验的人那里得到答案。谢谢。

【问题讨论】:

  • 非常好的问题,不主观,无缘无故关闭。

标签: amazon-web-services hadoop amazon-s3 amazon-ec2 amazon-emr


【解决方案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 安装部分)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    相关资源
    最近更新 更多