关于amazon Web服务:获取EMR集群的核心数量

Getting number of cores for EMR cluster

我在EMR集群中为我的从节点使用3个r4.2x大的实例,该集群有8个CPU。我如何确定集群中可用的核心数量。我使用以下命令来确定这一点:

1
grep cores /proc/cpuinfo

它说我每个CPU有一个内核。

对于spark etl作业,最好使用AWS实例的R系列或C系列。此外,上面的命令也是确定集群可用核心的正确方法。


EMR集群中的核心数只是每个核心/任务实例的核心数乘以您使用的实例类型的核心数之和。所以在你的情况下,应该是:

1
3 instances * 8 cores (per r4.2xlarge) = 24 cores

我假设你对/proc/cpuinfo的内容感到困惑。如果你看它时没有对核心进行grepping,你会看到上面提到的多个处理器。也许可以看看:如何从命令行获得Linux中CPU/内核的数量?

请记住,CPU的总数不一定是处理任务的CPU数量,因为这也取决于hadoop/spark的配置。

关于实例类型:选择哪种类型取决于您的工作负载。如果是内存繁重的工作负载(像火花作业通常是这样),那么来自内存繁重的R系列的EC2实例可能比来自CPU繁重的C系列实例的实例更好。