【问题标题】:Configuring EMR cluster, which node to choose?配置 EMR 集群,选择哪个节点?
【发布时间】:2021-03-29 14:20:05
【问题描述】:

假设我从 RDS 读取数据并使用 EMR 集群 (Spark) 将其写入 S3,我应该只使用 Task 节点吗?

Example:
* 1 Master node 
* 4 Task nodes

在我的情况下,我不使用 HDFS 来存储数据,因此如果我理解正确的话,就不需要使用 Core 节点。或者我应该至少有一个 Core 节点吗?有什么想法吗?

【问题讨论】:

  • 我认为一个集群至少需要一个Core节点。

标签: amazon-web-services apache-spark amazon-emr


【解决方案1】:

据我所知,您应该有至少一个核心节点。

很久以前我也有一个类似的用例,我曾使用 Spark-SQL 从 S3 读取数据并将其插入 RDS(与您的用例相反,但这并不重要)。

由于这份工作的性质不重,我只使用了Master节点和Core节点。我没有使用任何Task节点,因为我没有发现使用它的需要一份小工作。

我认为只有在使用HDFS时,我们应该关注Core节点的使用,这有点误解。在我看来,归根结底,即使是核心节点也是我可以运行应用程序的实例。

所以即使是核心节点也可以执行任务/工作节点的工作,我已经看到了多个核心节点是高实例类型(比如 r5.24xlarge)甚至在这个实例上的例子你的执行者将会运行。

在我上面的例子中,所有的任务都是在核心节点本身上执行的,因为我没有任何任务节点。

根据我的经验,我见过很多EMR只有主节点和核心节点。没有看到只有主节点和任务节点的任何东西。

我要分享的一个关键点是请在核心节点中使用至少一个按需实例。您可以在核心节点中拥有一组实例(由两个 on-点播),但最好至少有一个点播节点。

更多阅读可以在这里找到:

  1. Understand Node Types
  2. Cluster Configuration Guidelines and Best Practices

所以这个故事的寓意是:

我应该至少有一个核心节点吗?

是的,我认为你应该这样做。

【讨论】:

  • 但是核心节点和任务节点之间的基本区别是什么?比如当我有 20 GB 的数据时它会如何工作。它是如何在底层的核心和任务之间分配的。请帮忙
猜你喜欢
  • 1970-01-01
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 2018-04-03
  • 1970-01-01
  • 2021-04-27
  • 2018-10-29
相关资源
最近更新 更多