<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How databricks assign memory and cores in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/how-databricks-assign-memory-and-cores/m-p/92452#M38443</link>
    <description>&lt;P class="_1t7bu9h1 paragraph"&gt;Databricks allocates resources to executors on a node based on several factors, and it appears that your cluster configuration is using default settings since no specific Spark configurations were provided.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;P class="_1t7bu9h1 paragraph"&gt;&lt;STRONG&gt;Executor Memory Allocation&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL class="_1t7bu9h7 _1t7bu9h2"&gt;
&lt;LI&gt;The &lt;CODE&gt;spark.executor.memory&lt;/CODE&gt; setting you observed (24G) is the amount of memory allocated to each executor. This is typically a fraction of the total node memory to ensure there is enough overhead for the operating system and other processes.&lt;/LI&gt;
&lt;LI&gt;The observed memory usage cap of 48G per worker node suggests that there might be two executors per node, each using 24G of memory.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P class="_1t7bu9h1 paragraph"&gt;&lt;STRONG&gt;Executor Cores&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL class="_1t7bu9h7 _1t7bu9h2"&gt;
&lt;LI&gt;&lt;SPAN&gt;The absence of &lt;CODE&gt;spark.executor.cores&lt;/CODE&gt; in the Spark UI environment tab indicates that the default configuration is being used. By default, Databricks assigns one executor per worker node, and the number of cores per executor is determined by the total number of cores available on the node divided by the number of executors.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;For a node with 16 cores, if there are two executors, each executor would typically use 8 cores.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P class="_1t7bu9h1 paragraph"&gt;&lt;STRONG&gt;Resource Allocation&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL class="_1t7bu9h7 _1t7bu9h2"&gt;
&lt;LI&gt;&lt;SPAN&gt;Databricks runs one executor per worker node by default, but this can be adjusted by specifying the &lt;CODE&gt;spark.executor.instances&lt;/CODE&gt; and &lt;CODE&gt;spark.executor.cores&lt;/CODE&gt; configurations.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;The total memory available to executors on a node is less than the node's total memory to leave room for system processes and Spark's overhead.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;</description>
    <pubDate>Tue, 01 Oct 2024 14:41:17 GMT</pubDate>
    <dc:creator>Walter_C</dc:creator>
    <dc:date>2024-10-01T14:41:17Z</dc:date>
    <item>
      <title>How databricks assign memory and cores</title>
      <link>https://community.databricks.com/t5/data-engineering/how-databricks-assign-memory-and-cores/m-p/91631#M38225</link>
      <description>&lt;P&gt;Hi team,&lt;/P&gt;&lt;P&gt;We are using job cluster with node type 128G memory+16cores for a workflow. From document we know one worker is one node and is one executor. From Spark UI env tab we can see the spark.executor.memory is 24G, and from metrics we can see the memory usage for worker seems to be capped under 48G instead of using full memory. We don't specify spark configs in the cluster. Also, we cannot see spark.executor.cores shown in env tab. Can you please help to explain how Databricks allocates the resource to executor with a node resource?&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 24 Sep 2024 22:43:44 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-databricks-assign-memory-and-cores/m-p/91631#M38225</guid>
      <dc:creator>MikeGo</dc:creator>
      <dc:date>2024-09-24T22:43:44Z</dc:date>
    </item>
    <item>
      <title>Re: How databricks assign memory and cores</title>
      <link>https://community.databricks.com/t5/data-engineering/how-databricks-assign-memory-and-cores/m-p/92452#M38443</link>
      <description>&lt;P class="_1t7bu9h1 paragraph"&gt;Databricks allocates resources to executors on a node based on several factors, and it appears that your cluster configuration is using default settings since no specific Spark configurations were provided.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;P class="_1t7bu9h1 paragraph"&gt;&lt;STRONG&gt;Executor Memory Allocation&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL class="_1t7bu9h7 _1t7bu9h2"&gt;
&lt;LI&gt;The &lt;CODE&gt;spark.executor.memory&lt;/CODE&gt; setting you observed (24G) is the amount of memory allocated to each executor. This is typically a fraction of the total node memory to ensure there is enough overhead for the operating system and other processes.&lt;/LI&gt;
&lt;LI&gt;The observed memory usage cap of 48G per worker node suggests that there might be two executors per node, each using 24G of memory.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P class="_1t7bu9h1 paragraph"&gt;&lt;STRONG&gt;Executor Cores&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL class="_1t7bu9h7 _1t7bu9h2"&gt;
&lt;LI&gt;&lt;SPAN&gt;The absence of &lt;CODE&gt;spark.executor.cores&lt;/CODE&gt; in the Spark UI environment tab indicates that the default configuration is being used. By default, Databricks assigns one executor per worker node, and the number of cores per executor is determined by the total number of cores available on the node divided by the number of executors.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;For a node with 16 cores, if there are two executors, each executor would typically use 8 cores.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P class="_1t7bu9h1 paragraph"&gt;&lt;STRONG&gt;Resource Allocation&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL class="_1t7bu9h7 _1t7bu9h2"&gt;
&lt;LI&gt;&lt;SPAN&gt;Databricks runs one executor per worker node by default, but this can be adjusted by specifying the &lt;CODE&gt;spark.executor.instances&lt;/CODE&gt; and &lt;CODE&gt;spark.executor.cores&lt;/CODE&gt; configurations.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;The total memory available to executors on a node is less than the node's total memory to leave room for system processes and Spark's overhead.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;</description>
      <pubDate>Tue, 01 Oct 2024 14:41:17 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-databricks-assign-memory-and-cores/m-p/92452#M38443</guid>
      <dc:creator>Walter_C</dc:creator>
      <dc:date>2024-10-01T14:41:17Z</dc:date>
    </item>
    <item>
      <title>Re: How databricks assign memory and cores</title>
      <link>https://community.databricks.com/t5/data-engineering/how-databricks-assign-memory-and-cores/m-p/150838#M53530</link>
      <description>&lt;P&gt;What are the list of spark configs we can add while creating the cluster in databricks&lt;/P&gt;</description>
      <pubDate>Fri, 13 Mar 2026 15:46:32 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/how-databricks-assign-memory-and-cores/m-p/150838#M53530</guid>
      <dc:creator>vijayavardhan</dc:creator>
      <dc:date>2026-03-13T15:46:32Z</dc:date>
    </item>
  </channel>
</rss>

