作者的实验为kylin kafka cube定时任务增量构建。
环境:
- hadoop 2.7.2
- hbase 1.2.5
- hive 1.2.2
- kylin-2.4.0-bin-hbase1x
先看我的yarn-site.xml配置
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/tmp/hadoop/nodemanager,/home/hadoop/nodemanager</value>
<description>列表用逗号分隔</description>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/tmp/hadoop/nodemanager/logs,/home/hadoop/nodemanager/logs</value>
<description>列表用逗号分隔</description>
</property>
</configuration>
在SIT实验环境下,9G的/tmp/hadoop/nodemanager目录,几小时被撑爆。网上没找到满意的参考。
上网一查yarn.nodemanager.local-dirs: 这个目录是nodemanager上的作业中间数据存放路径。会存放作业jar包,由于该,目录的默认大小10G比我的容量要大,所以还没触发删除程序,该node就变成Unhealthy Node挂起。
加上后面两个配置,问题解决:
<property>
<name>yarn.nodemanager.localizer.cache.target-size-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.nodemanager.localizer.cache.cleanup.interval-ms</name>
<value>60000</value>
</property></span>
yarn.nodemanager.localizer.cache.target-size-mb:配置yarn.nodemanager.local-dirs,yarn.nodemanager.log-dirs上缓存目录的最大容量。
yarn.nodemanager.localizer.cache.cleanup.interval-ms:扫描间隔。
ResourceLocalizationService.serviceStart()
CacheCleanup.run()
dispatcher.getEventHandler().handle()
ResourceLocalizationService.handle()
handleCacheCleanup()
retain.addResources()
tracker.remove(resource,delService)
DelService.delete()
sched.schedule(task,debugDeley,TimeUNIT.SECONDS)
task.run()
delService.exec.deleteAsUser()
DefaultContainerExecutor.deleteAsUser()
NodeManager在调用addResources()方法的时候,查看yarn.nodemanager.local-dirs中配置的目录大小是否超过了这里设置的最大阀值。如果超过了,就删除一些已经执行完的Container缓存数据,配置项添加以后确实开始删除,只是删除的速度可能赶不上增加的速度,最终还是会yarn.nodemanager.local-dirs
yarn.nodemanager.log-dirs空间不足挂起,所以需要按自己系统负载做好配置。
问题解决.
参考:
【1】https://blog.youkuaiyun.com/mtj66/article/details/51841930
【2】https://stackoverflow.com/questions/41539659/yarn-automatic-clearing-of-filecache-usercache
【3】https://issues.apache.org/jira/browse/YARN-4540