【问题标题】:Running Spark application using HDFS or S3使用 HDFS 或 S3 运行 Spark 应用程序
【发布时间】:2016-02-08 20:48:59
【问题描述】:

在我的 spark 应用程序中,我只想访问一个大文件,并将计算分布在 EC2 上的多个节点上。

最初,我的文件存储在 S3 上。

从S3加载带有sc.textFile()函数的文件对我来说非常方便。

但是,我可以努力将数据加载到 HDFS,然后从那里读取数据。

我的问题是,HDFS 的性能会更好吗?

我的代码涉及到 spark partitions(mapPartitions transforamtion),那么我的初始文件系统是什么真的很重要吗?

【问题讨论】:

    标签: amazon-s3 apache-spark hdfs


    【解决方案1】:

    显然,与本地磁盘上的 HDFS 相比,使用 S3 时延迟更高,数据吞吐量更低。

    但这取决于您如何处理数据。似乎大多数程序更多地受到 CPU 能力的限制,而不是网络吞吐量。因此,您应该对从 S3 获得的 1Gbps 吞吐量感到满意。

    无论如何,您都可以查看 Aaron Davidson 在 2015 年 Spark 峰会上的演讲中最近的幻灯片。该主题已在此处讨论。

    http://www.slideshare.net/databricks/spark-summit-eu-2015-lessons-from-300-production-users/16

    【讨论】:

    • “您从 S3 获得的 1Gbps 吞吐量”:S3 不限于 1Gbps。您将在 S3 之前遇到 EC2 实例瓶颈。最大的 EC2 实例带有 10Gbps NIC。如果您无法获得超过 1Gbps 的速度,则肯定有问题:实例大小太小,或者您的应用程序根本没有足够努力地推动。在我写这篇评论时,我刚刚测试了一个从单个 m4.10xl EC2 实例到 S3 的简单上传 50GB 文件,并且以最小的努力获得了大约 4Gbps(即简单的 aws s3 cp ...;我可能会花更多的时间优化以获得更高的吞吐量)。
    猜你喜欢
    • 2019-12-17
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 2023-01-05
    • 2017-07-11
    相关资源
    最近更新 更多