获取 EMR 集群的核心数
Getting number of cores for EMR cluster
我在我的 emr 集群中为我的从属节点使用了 3 个 r4.2x large 实例,它有 8 个cpu。我如何确定集群中可用的核心数。我使用了以下命令确定这一点:
grep cores /proc/cpuinfo
它说我每个 cpu 有 1 个核心。
对于 spark ETL 作业,使用 AWS 实例的 R 系列还是 C 系列更好。此外,上述命令是否是确定集群可用内核的正确方法
您的 EMR 集群中的核心数只是每个 core/task 实例的核心数乘以您正在使用的实例类型的核心数的总和。所以在你的情况下它是:
3 instances * 8 cores (per r4.2xlarge) = 24 cores
我想您对 /proc/cpuinfo
的内容感到困惑。如果您在不查找内核的情况下查看它,您会看到提到了多个处理器。也许查看:How to obtain the number of CPUs/cores in Linux from the command line?
请记住,CPU 的总和不一定是处理任务的 CPU 的数量,因为这还取决于 Hadoop/Spark 的配置。
关于实例类型:选择哪种类型取决于您的工作量。如果它是内存繁重的工作负载(如 Spark 作业通常是这样),那么来自内存繁重的 R 系列的 EC2 实例可能比来自 CPU-heavy C 系列实例的实例更好。
我在我的 emr 集群中为我的从属节点使用了 3 个 r4.2x large 实例,它有 8 个cpu。我如何确定集群中可用的核心数。我使用了以下命令确定这一点:
grep cores /proc/cpuinfo
它说我每个 cpu 有 1 个核心。
对于 spark ETL 作业,使用 AWS 实例的 R 系列还是 C 系列更好。此外,上述命令是否是确定集群可用内核的正确方法
您的 EMR 集群中的核心数只是每个 core/task 实例的核心数乘以您正在使用的实例类型的核心数的总和。所以在你的情况下它是:
3 instances * 8 cores (per r4.2xlarge) = 24 cores
我想您对 /proc/cpuinfo
的内容感到困惑。如果您在不查找内核的情况下查看它,您会看到提到了多个处理器。也许查看:How to obtain the number of CPUs/cores in Linux from the command line?
请记住,CPU 的总和不一定是处理任务的 CPU 的数量,因为这还取决于 Hadoop/Spark 的配置。
关于实例类型:选择哪种类型取决于您的工作量。如果它是内存繁重的工作负载(如 Spark 作业通常是这样),那么来自内存繁重的 R 系列的 EC2 实例可能比来自 CPU-heavy C 系列实例的实例更好。