EMR Serverless将shuffle上限提高到1TB:版本与区域都要匹配,流式任务仍不适用
2026年10月1日,AWS宣布EMR Serverless的无服务器存储支持最高1TB的shuffle操作,将此前每个作业200GB的限制提高。新范围对应emr-7.14、emr-spark-8.1及后续适用版本,首批覆盖18个AWS区域,面向需要大量重分配数据的Spark连接、聚合与排序任务。
增加的是中间处理空间
shuffle会把数据按计算需要重新分配,输入文件大小与中间数据量不是同一个数字。例如,两张表关联后可能生成更多中间记录;即使原始文件不大,某些阶段也可能需要大量存储。此次上限提升应按作业产生的中间读写量理解,不能直接翻译成“只能处理1TB源数据”或“任何1TB作业都能成功”。
公告同时提到spill支持,可在内存紧张时把数据卸到存储。无服务器存储把中间数据与计算工作节点分离,空闲节点不必仅为保留本地数据而一直占用。它给大批处理作业增加了余量,但并未消除数据倾斜、计算容量不足或不合理关联带来的其他失败原因。
AI模型生成的概念插图:数据重分配拥有更大的中间存放空间;不是EMR内部架构图,也不代表真实作业容量或性能。
同一个开关,不同环境仍有不同上限
本次核对发现,官方指南的不同可读取版本尚不完全一致:一份仍统一写200GB,另一份已经列出1TB及区域例外;10月1日发布公告则明确了1TB、适用版本与18个区域。下文按公告和包含新额度的指南说明范围,部署前仍应核对目标区域的实际配置与AWS支持说明。
官方指南区分了基础功能与新额度:无服务器存储从EMR 7.12开始支持,但7.12、7.13及emr-spark-8.0仍为200GB;更高额度要求7.14及后续适用版本,包括emr-spark-8.1。仅看到应用已打开无服务器存储,还不足以确认能使用1TB。
地区也要单独检查。更新后的官方指南将Cape Town、Melbourne、Calgary、London、Milan、Paris和Zurich继续标为200GB;其余列出的18区采用新额度,包含香港、新加坡、东京、法兰克福和爱尔兰等。不能把基础功能支持的所有区域,直接当成这次1TB扩展的全部覆盖范围。
指南以spark.aws.serverlessStorage.enabled控制启用,可在应用层配置,也可为单个作业选择。未配置或设为false时继续使用传统本地磁盘路径。迁移前应同时记录发布标签、区域和实际作业覆盖设置,避免被应用默认值与单次提交参数之间的差异误导。
先检查作业形态,再比较成本
当前限制仍包括:不支持流式和交互作业,不支持1或2个vCPU的工作节点;执行超时配置最多24小时。预初始化容量也不能用于启用了该存储模式的作业,这类作业会按需启动新节点。原来为了启动速度保留预热容量的团队,需要把这一点纳入比较。
中间数据存储本身不收费,但计算和内存仍计费。更大的容量上限并不自动意味着更低总成本:一个以前失败的作业现在能跑完,可能产生更长计算时间;节点能更早释放则可能降低费用。应对照同样输入和输出要求评估,不能只看存储账单一项。
本文建议选择一个曾接近200GB限制的代表作业,先保留原执行计划、输入快照和输出校验结果,再在符合版本与区域条件的环境运行。观察各阶段shuffle量、spill情况、节点释放与总耗时,并核对结果行数和关键聚合值。容量验收通过之后,再决定是否扩大到更多任务。
此次变化对受中间存储上限限制的批处理更有直接价值。若瓶颈来自单个热点分区或极端多对多关联,应继续优化数据分布与查询逻辑,把新增余量用在合理的计算上。
来源与核对时间
资料核对:2026年10月3日(北京时间)。官方指南以包含1TB及区域例外的更新内容为准,本文未提交或压测云端作业。


