You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-dev@hadoop.apache.org by "Aleksey Tsalolikhin (Jira)" <ji...@apache.org> on 2021/11/29 20:32:00 UTC
[jira] [Created] (YARN-11021) Define Hadoop YARN "vcore"
Aleksey Tsalolikhin created YARN-11021:
------------------------------------------
Summary: Define Hadoop YARN "vcore"
Key: YARN-11021
URL: https://issues.apache.org/jira/browse/YARN-11021
Project: Hadoop YARN
Issue Type: Wish
Components: docs, documentation
Affects Versions: 3.3.1
Reporter: Aleksey Tsalolikhin
Hello,
This is a request to define the Hadoop YARN term "vCore". It's clearly different than vCPU as in the number of virtual CPUs (or CPU cores) a system has as per /proc/cpuinfo. What is a YARN vcore, please?
{*}Background{*}: I am running Hadoop YARN on 24 AWS EC2 instances from the R5 family (memory-intensive) with the instance size of 24 XLarge (96 vCPUs and 768 GB RAM each), plus the cluster master.
I've launched a Spark application with the following spark-submit parameters:
{{ --executor-memory 224G}}
{{ --conf spark.executor.memoryOverhead=23901M}}
{{ --executor-cores 32}}
That sets a ratio of about 250 GB of RAM (combined) to 32 vCPUs per executor; I have Spark dynamic resource allocation enabled, so I expect to see three executors per instance, and that's how it turns out.
24 nodes x 3 executors per node = 72 executors
Plus the Application Master running on the Master node makes 73 executors.
This matches the "73 allocated" I see in "yarn top" output in the "Containers" line:
{{ YARN top - 11:03:57, up 0d, 18:9, 1 active users, queue(s): root}}
{{ NodeManager(s): 24 total, 24 active, 0 unhealthy, 44 decommissioned, 0 lost, 0 rebooted}}
{{ Queue(s) Applications: 1 running, 1 submitted, 0 pending, 0 completed, 0 killed, 0 failed}}
{{ Queue(s) Mem(GB): 183 available, 17809 allocated, 69008 pending, 247 reserved}}
{{ Queue(s) VCores: 2230 available, 73 allocated, 279 pending, 1 reserved}}
{{ Queue(s) Containers: 73 allocated, 279 pending, 1 reserved}}
Most of the memory is allocated, which is as expected.
But why does the "Queue(s) VCores" line say "73 allocated"?
Looks like 1 VCore = 32 vCPUs?
I looked in /etc/hadoop/conf/yarn-site.xml on one of the 24XL task
instances with 96 vCPUs to double check how many virtual CPUs YARN thinks
the node has, and it is 96 as expected:
{{ <property>}}
{{ <name>yarn.nodemanager.resource.cpu-vcores</name>}}
{{ <value>96</value>}}
{{ </property>}}
I looked through all the Hadoop YARN documentation linked from https://hadoop.apache.org/docs/stable/index.html looking for a definition of a Hadoop YARN vCore and I couldn't find one.
https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/WritingYarnApplications.html uses "virtual cores" and "computation based resource" when talking about vCores.
What is a Hadoop YARN vCore? How does it relate to virtual CPUs I see in e.g., /proc/cpuinfo on Linux?
There are many mentions of "vcore" in Hadoop YARN documentation; could we please add a definition of this term?
Thanks,
Aleksey
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-dev-help@hadoop.apache.org