1

我正在使用钻头读取 s3 存储桶,然后使用镶木地板将其写回 s3,以便使用 spark 数据帧读取它以进行进一步分析。AWS emr 要求我至少拥有 2 台核心机器。

将 i mirco 实例用于 master 和 cores 会影响性能吗?

我不使用 hdfs,所以我想把它们做成 mirco 实例来省钱。

无论如何,所有计算都将由 R3.xlarge 现场实例作为任务节点在内存中完成。最后,Spark 是否在每台机器中使用多个内核?还是使用 4.1 版本启动任务节点队列 R3.xlarge 以便它们可以自动调整大小是否更好?

4

1 回答 1

1

我不知道您对 Spark 有多熟悉,但您需要了解有关核心使用的几件事:

  • 您可以设置用于驱动程序进程的内核数,仅在集群模式下。默认为1
  • 您还可以设置要在每个执行程序上使用的核心数。仅适用于 YARN 和独立模式。它在 YARN 模式下为 1,在独立模式下工作线程上的所有可用内核。在独立模式下,设置此参数允许应用程序在同一个工作人员上运行多个执行程序,前提是该工作人员上有足够的核心。否则,每个应用程序只有一个执行程序将在每个工作人员上运行。

现在回答你的两个问题:

将 i micro instance 用于 master 和 cores 会影响性能吗?

  • 是的,驱动程序需要最少的资源来安排作业、有时收集数据等。在性能方面,您需要根据您的用例对更适合您的使用情况进行基准测试,您可以在 AWS 上使用 Ganglia 进行每个示例。

spark在每台机器上使用多个内核吗?

  • 是的,Spark 在每台机器上使用多个内核。

您还可以阅读有关Spark的AWS EMR 集群首选哪种实例类型的文章。

Spark 的支持在 AWS 上几乎是新的,但它通常接近所有其他 Spark 集群设置。

我建议您阅读AWS EMR 开发人员指南 - 计划 EMR 实例一章以及 Spark 官方文档指南。

于 2015-10-25T18:02:59.407 回答