【问题标题】:Spark, does size of master node on EMR matter?Spark,EMR 上主节点的大小重要吗?
【发布时间】:2019-09-22 19:35:02
【问题描述】:

在 EMR 上运行 Spark ETL 作业时,主节点实例的大小是否重要?据我了解,主节点不处理数据的处理/计算,负责调度任务、与核心和任务节点通信以及其他管理任务。

这是否意味着如果我有 10 TB 的数据需要转换然后写出,我可以将 1 个中型实例用于主节点,将 10 个 8xlarge 用于核心节点?

根据阅读,我看到大多数人建议主节点实例类型应该与我目前使用的核心实例类型相同并且工作正常。这将是主节点的 1 个 8xlarge 和核心节点的 10 个 8xlarge。

根据 AWS 文档,我们应该使用 m4.large,所以我很困惑什么是正确的。

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-instances-guidelines.html

主节点没有大的计算需求。对于 50 个或更少节点的大多数集群,请考虑使用 m4.large 实例。对于超过 50 个节点的集群,请考虑使用 m4.xlarge。

【问题讨论】:

  • 更新答案。
  • 取决于那里运行的应用程序数量。如果只是 spark 和 hadoop,m4.xlarge 就足够了。我们在生产环境中运行 m4.xlarge 已经有一段时间了。
  • 网速,取决于你运行的是什么模式的spark,即集群还是客户端,加载什么文件等等,很多东西都是相关的。
  • 大多数人的东西既不在这里也不在那里。

标签: apache-spark amazon-emr


【解决方案1】:

提问的方式有点含糊。大小确实很重要,即负载等。所以我从稍微不同的角度回答它。 “大多数人......”的东西既不存在也不存在。

过去分配 Master 的方式是 EMR 方法的一个弱点,恕我直言,当我在大约 9 个月前尝试将它用于 PoC 时。为 Workers 分配大量资源,默认情况下 1 个分配给 Master,这完全是矫枉过正。

因此,如果您按标准执行操作,则您为主节点支付了不必要的大于所需资源的费用。有一种方法可以为 Master 定义一个更小的资源,但我在 hols 中,无法再次找到它。

但是,查看此处的 url,您现在可以看到在 EMR 集群期间 配置您可以轻松定义一个较小的主节点或许多这样的主节点 故障转移的节点,自从我上次查看以来,事情已经发生了变化: https://confusedcoders.com/data-engineering/how-to-create-emr-cluster-with-apache-spark-and-apache-zeppelin.

有关多个此类主节点,另请参阅 https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-ha-launch.html

一般来说,主节点在特性方面可能与工作节点不同​​,通常更小,但并非在所有情况下都如此。也就是说,EMR 的目的往往指向更小的主节点配置。

【讨论】:

  • 谢谢,我会记住的。不知道多主节点功能
猜你喜欢
  • 1970-01-01
  • 2020-09-23
  • 2017-03-22
  • 2021-05-18
  • 1970-01-01
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多