MapReduce 和 HDFS 的数据局部性非常重要(Spark、HBase 也是如此)。我一直在研究 AWS 以及在云中部署集群时的两个选项:
由于不同的原因,第二个选项似乎更有吸引力,其中最有趣的是能够分别扩展存储和处理,并在不需要时关闭处理(更正确的是,仅在需要时才打开它)。是一个解释使用 S3 优点的示例。
让我烦恼的是数据局部性的问题。如果数据存储在 S3 中,则每次运行作业时都需要将其拉取到 HDFS。我的问题是——这个问题有多大,是否仍然值得?
让我感到安慰的是,我只会在第一次提取数据,然后所有接下来的工作都会在本地得到中间结果。
我希望得到一些有这方面实际经验的人的答案。谢谢。
EMR 不会将数据从 S3 拉取到 HDFS。它在 S3 上使用自己的 HDFS 支持实现(就像您在实际的 HDFS 上操作一样)。https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-fs.html https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-fs.html
至于数据局部性,S3 是RACK_LOCAL
到 EMR 火花簇。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)