kylin hadoop yarn 文件夹空间不足问题

8 篇文章 0 订阅
6 篇文章 0 订阅

作者的实验为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.csdn.net/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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值