S3和EMR数据位置

时间:2017-06-01 09:45:51

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

使用MapReduce和HDFS的数据位置非常重要(同样适用于Spark,HBase)。在云中部署集群时,我一直在研究AWS以及两个选项:

  • EC2
  • EMR + S3

第二个选项似乎更有吸引力,原因各不相同,其中最有趣的是能够单独扩展存储和处理以及在不需要时关闭处理(更正确,只在需要时打开它)。 This是一个解释使用S3的优点的例子。

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

让我感到安慰的是,我将仅在第一次提取数据,然后所有下一个工作将在本地获得中间结果。

我正在寻找一些有实际经验的人的回答。谢谢。

2 个答案:

答案 0 :(得分:1)

EMR不会将数据从S3提取到HDFS。它在S3上使用自己的HDFS支持实现(就像您在实际的HDFS上运行一样)。 enter image description here

对于数据位置,S3是EMR spark群集的RACK_LOCAL

答案 1 :(得分:1)

根据下面提到的来源,带有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编写的“编程弹性地图缩减手册”(第1章Amazon Elastic MapReduce与传统的Hadoop安装部分)。