如何在 apache spark 和 drill aws 集群中优化 aws 集群实例类型?

How to optimise aws cluster instance types in apache spark and drill aws cluster?

我正在使用 drill 读取 s3 buckets,然后使用 parquet 将其写回 s3,以便使用 spark 数据帧读取它以进行进一步分析。 AWS emr 要求我至少有 2 个核心机器。

master和core使用mirco实例会影响性能吗?

我不使用 hdfs,所以我想将它们制作成微实例以节省资金。

无论如何,所有计算都将由 R3.xlarge spot 实例作为任务节点在内存中完成。 最后 spark 在每台机器上使用多个内核吗? 还是最好在 4.1 版本中启动任务节点群 R3.xlarge 以便自动调整大小?

我不知道您对 Spark 的熟悉程度,但是关于核心用法,您需要了解以下几点:

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

现在回答你的两个问题:

will using i micro instance for master and cores affect performance?

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

does spark utilise multiple cores in each machine?

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

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

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

我建议您阅读 AWS EMR developer guide - Plan EMR Instances 章节以及 Spark 官方文档指南。