背景:
最近在公司的测试服务器上做性能测试, Spark Streaming Job,总是运行一段时间之后就挂掉了。看日志似乎是HDFS出现了问题,数据写不进去了。
但是看了看每台服务器的硬盘,明明都还有空间,最少的都有80%。不管三七二十一,先清一清数据, 把程序启动起来继续跑,并配置了crontab,定时清理磁盘上的日志和临时文件。
当时的预感是YARN上有某种磁盘保护措施,当磁盘使用率达到80%的时候,停止写入。
发现:
今天终于找到了这几个参数:
yarn.nodemanager.disk-health-checker.min-healthy-disks:NodeManager上最少保证健康磁盘比例,当健康磁盘比例低于该值时,NodeManager不会再接收和启动新的Container,默认值是0.25,表示25%;
yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage:一块磁盘的最高使用率,当一块磁盘的使用率超过该值时,则认为该盘为坏盘,不再使用该盘,默认是100,表示100%,可以适当调低;
yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb:一块磁盘最少保证剩余空间大小,当某块磁盘剩余空间低于该值时,将不再使用该盘,默认是0,表示0MB。