使用MapReduce和HDFS的数据位置非常重要(同样适用于Spark,HBase)。在云中部署集群时,我一直在研究AWS以及两个选项:
第二个选项似乎更有吸引力,原因各不相同,其中最有趣的是能够单独扩展存储和处理以及在不需要时关闭处理(更正确,只在需要时打开它)。 This是一个解释使用S3的优点的例子。
我遇到的问题是数据位置问题。如果数据存储在S3中,则每次运行作业时都需要将其拉到HDFS。我的问题是 - 这个问题有多大,还值得吗?
让我感到安慰的是,我将仅在第一次提取数据,然后所有下一个工作将在本地获得中间结果。
我正在寻找一些有实际经验的人的回答。谢谢。
答案 0 :(得分:1)
答案 1 :(得分:1)
根据下面提到的来源,带有EMRFS的EMR + S3不能保持数据局部性,因此不适合基于SQL之类的工具进行分析处理。对于将计算和数据放在一处的此类用例,RedShift是正确的选择。请在以下链接中参考39:00至42:00:
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安装部分)。