MaxCompute Spark中磁盘空间不足的表现形式是什么?
在Executor/Driver的日志中发现了No space left on device错误
解决方案:
最简单的方法是直接增加更多的磁盘空间,调大 spark.hadoop.odps.cupid.disk.driver.device_size 如果增加到100g之后依然出现该错误,可能是由于存在数据倾斜,shuffle或者cache过程中数据集中分布在某些block,也可能是单个Executor的shuffle数据量确实过大,可以尝试:
对数据重分区,解决数据倾斜问题
增加executor的数量spark.executor.instances需要注意:
缩小读表并发spark.hadoop.odps.input.split.size
缩小单个Executor的任务并发spark.executor.cores
同样由于在JVM启动前就需要挂载磁盘,因此该参数必须配置在spark-defaults.conf文件或者dataworks的配置项中,不能配置在用户代码中
此外需要注意该参数的单位为g,不能省略g
很多时候由于用户配置位置有误或者没有带单位g,导致参数实际并没有生效,任务运行依然失败
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。