AWS EMR 性能 HDFS 与 S3

Posted

技术标签:

【中文标题】AWS EMR 性能 HDFS 与 S3【英文标题】:AWS EMR performance HDFS vs S3 【发布时间】:2013-11-22 11:00:21 【问题描述】:

在大数据中,代码被推送到数据中以供执行。这是有道理的,因为数据量很大,而执行代码相对较小。来到 AWS EMR,数据可以在 HDFS 或 S3 中。在 S3 的情况下,必须将数据拉到核心/任务节点以从其他一些节点执行。与 HDFS 中的数据相比,这可能有点开销。

最近,我注意到在执行 MR 作业时,将日志文件导入 S3 时存在巨大延迟。有时,即使在作业完成后,日志文件也需要几分钟才能出现。

对此有什么想法吗?有没有人用 HDFS 和 S3 中的数据来衡量 MR 作业的完成情况?

【问题讨论】:

【参考方案1】:

这是另一个层面的问题。

S3 只有最终的一致性。在您的代码(例如 close()flush())写入某些内容后,您不会立即看到/读取,因为写入过程会延迟。我认为这可能是由于为您编写的数据分配了免费资源。所以这不是性能问题,而是您真正想要/需要的一致性问题。

我在 EMR 上做什么?我启动了一个 Hadoop 集群,并将所有需要的东西都放入 HDFS 中。在 S3 上读取的时间成本要高得多,并且最终的一致性使得 ist 基本上无法用于缓冲作业之间的项目。

但是,当从 HDFS 备份文件或使它们可用于其他实例或服务(例如 CloudFront)时,S3 非常棒。

添加:

截至 2020 年 12 月 8 日。默认情况下,S3 添加了对跨所有区域的强一致性的支持。 https://aws.amazon.com/blogs/aws/amazon-s3-update-strong-read-after-write-consistency/

【讨论】:

这并不完全正确。 S3 在某些地区(即美国东部)具有最终一致性。 Read After Write 一致性在其他地方使用。欲了解更多信息:aws.amazon.com/s3/faqs/… 我应该指出,马克的信息已经过时了。来自他的链接:“所有区域中的 Amazon S3 存储桶为新对象的 PUTS 提供写后读一致性,并为覆盖 PUTS 和 DELETES 提供最终一致性。”【参考方案2】:

在性能方面HDFS优于S3

如果您的需求是长期的、需要高性能并且您想要执行迭代机器学习算法,那么 HDFS 会更好

如果您的负载是可变的,S3 会更好,需要较高的持久性和持久性且成本较低。

欲了解更多信息,请访问此链接http://www.nithinkanil.com/2015/05/hdfs-vs-s3.html

【讨论】:

【参考方案3】:

如果要终止 EMR 集群,则必须使用 S3,因为一旦终止集群 - HDFS 数据将被删除。

【讨论】:

以上是关于AWS EMR 性能 HDFS 与 S3的主要内容,如果未能解决你的问题,请参考以下文章

从 S3 加载 AWS EMR

S3 和 EMR 数据本地化 [关闭]

使用 S3DistCp 将文件从 HDFS 复制到 EMR 集群上的 S3

如何将文件从 S3 复制到 Amazon EMR HDFS?

json Amazon AWS EMR配置 - http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hdfs-config.html

AWS s3 同步从 s3 复制到 EMR 很慢