了解 EMR Serverless 中的应用程序行为
本节介绍了 EMR Serverless 的作业提交行为、扩展容量配置以及工作线程配置设置。
默认应用程序行为
自动启动:默认情况下,应用程序配置为在提交作业时自动启动。您可以关闭此功能。
自动停止:默认情况下,应用程序配置为在空闲 15 分钟后自动停止。当应用程序变为 STOPPED
状态时,会释放已配置的预初始化容量。您可以修改应用程序自动停止前的空闲时间,也可以关闭此功能。
最大容量
您可以配置应用程序可扩展的最大容量。指定 CPU、内存(GB)和磁盘(GB)的最大容量。
注意
我们建议将最大容量配置为与支持的工作线程大小成正比,方法是将工作线程数量乘以其大小。例如,如果要将应用程序限制为 50 个工作线程,配备 2 个 vCPU、16GB 内存和 20GB 磁盘,请将最大容量设置为 100 个 vCPU、800GB 内存和 1000GB 磁盘。
支持的工作线程配置
下表显示了可为 EMR Serverless 指定的受支持工作线程配置和大小。您可以根据工作负载的需要,为驱动程序和执行程序配置不同的大小。
CPU | 内存 | 默认临时存储 |
---|---|---|
1 个 vCPU |
最小 2GB,最大 8GB,以 1GB 为增量 |
20GB - 200GB |
2 个 vCPU |
最小 4GB,最大 16GB,以 1GB 为增量 |
20GB - 200GB |
4 个 vCPU |
最小 8GB,最大 30GB,以 1GB 为增量 |
20GB - 200GB |
8 个 vCPU |
最小 16GB,最大 60GB,以 4GB 为增量 |
20GB - 200GB |
16 个 vCPU |
最小 32GB,最大 120GB,以 8GB 为增量 |
20GB - 200GB |
CPU:每个工作线程可以有 1、2、4、8 或 16 个 vCPU。
内存:每个工作线程的内存(GB)都在上表所列限制范围内。Spark 作业有内存开销,这意味着其使用的内存超过了指定的容器大小。此开销由属性 spark.driver.memoryOverhead
和 spark.executor.memoryOverhead
指定。开销的默认值为容器内存的 10%,最小为 384MB。在选择工作线程大小时,应考虑此开销。
例如,如果为工作线程实例选择 4 个 vCPU,预初始化存储容量为 30GB,则应为 Spark 作业设置约 27GB 的执行程序内存。这样可以最大限度地提高预初始化容量的利用率。可用内存为 27GB,再加上 27GB的 10%(2.7GB),共计 29.7GB。
磁盘:您可以为每个工作线程配置临时存储磁盘容量,最小 20GB,最大 200GB。您只需为每个工作线程配置的超出 20GB 的额外存储空间付费。