默认VM规格外附加磁盘的作用及Spark Shuffle存储疑问
Dataproc集群附加磁盘的作用与Shuffle操作存储说明
创建GCP Dataproc集群时,配置VM节点可添加两类附加存储选项:
- 自定义主磁盘的大小与类型
- 增加本地SSD的数量
以n2-standard-4规格的VM为例,默认配置为4核CPU、16GB内存,搭配10GB标准非SSD磁盘。
一、为何需要在默认磁盘之外添加主磁盘或本地SSD?
- 解决容量不足问题:默认磁盘空间普遍偏小(比如上述的10GB),当Spark作业处理大规模数据时,内存溢出到磁盘的数据量很容易超出默认磁盘的承载上限,直接导致作业因磁盘空间不足失败。
- 提升作业执行性能:默认的标准非SSD磁盘IO性能有限,而Spark的Shuffle操作、内存溢出写磁盘等环节对IO速度高度敏感,慢磁盘会成为作业的性能瓶颈。本地SSD的随机读写性能远优于标准磁盘,能大幅加速这类IO密集型操作。
- 隔离系统与业务数据:默认磁盘通常承载VM的系统文件、日志等基础数据,附加磁盘可以专门用于存储Spark的溢出数据、Shuffle文件,既避免业务数据挤占系统磁盘空间,也能减少系统IO与业务IO的相互干扰。
二、附加磁盘添加后,Shuffle操作是否会在这些磁盘上进行?
是的,Dataproc会自动将Spark的工作目录(包含Shuffle文件、内存溢出数据的存储路径)配置到附加的主磁盘或本地SSD上:
- 若自定义了主磁盘,Spark的工作数据会优先使用扩容后的主磁盘空间;
- 若添加了本地SSD,Dataproc会自动配置Spark利用这些SSD作为存储介质,借助其高IO性能加速Shuffle等操作。
无需手动修改Spark的存储路径参数,Dataproc会完成磁盘挂载与Spark配置的自动管理,附加磁盘会直接承载Spark的磁盘IO密集型操作。
内容的提问来源于Stack Exchange,提问作者Matthew
相关产品推荐
相关产品推荐

