关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。
三个月前关门了。
改进这个问题
mapreduce和hdfs的数据局部性非常重要(spark和hbase也是如此)。我一直在研究aws以及在其云中部署集群时的两个选项:
ec2型
电子病历+s3
第二种选择似乎更有吸引力,原因各不相同,其中最有趣的是能够分别扩展存储和处理,并在不需要时关闭处理(更正确的是,仅在需要时才打开它)。这是一个解释使用s3的优点的例子。
让我困扰的是数据局部性问题。如果数据存储在s3中,则每次运行作业时都需要将其拉入hdfs。我的问题是——这个问题能有多大,还值得吗?
让我感到欣慰的是,我只会在第一次提取数据,然后接下来的所有工作都会在本地产生中间结果。
我想从一个有实际经验的人那里得到答案。谢谢您。
2条答案
按热度按时间smdncfj31#
emr不会将数据从s3拉到hdfs。它在s3上使用自己的hdfs支持实现(就像您在实际的hdfs上操作一样)。https://docs.aws.amazon.com/emr/latest/managementguide/emr-fs.html
对于数据局部性,s3是
RACK_LOCAL
电子病历Spark簇。tpgth1q72#
根据下面提到的来源,emr+s3和emrfs不维护数据的局部性,不适合基于sql等工具的分析处理。对于计算和数据位于同一位置的用例,红移是正确的选择。请参考以下链接中的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的《编程弹性mapreduce》(第1章amazon弹性mapreduce与传统hadoop安装部分)。