Hadoop 纱线:自动清除文件缓存&;用户缓存

Hadoop 纱线:自动清除文件缓存&;用户缓存,hadoop,spark-streaming,yarn,Hadoop,Spark Streaming,Yarn,我们正在运行一个spark streaming作业,使用Thread作为资源管理器,注意到这两个目录在数据节点上被填满了,当我们只运行几分钟时,空间就用完了 /tmp/hadoop/data/nm local dir/filecache /tmp/hadoop/data/nm local dir/filecache 这些目录不会自动清除,根据我的研究发现,需要设置此属性,warn.nodemanager.localizer.cache.cleanup.interval ms 即使在建立了这个…它

我们正在运行一个spark streaming作业,使用Thread作为资源管理器,注意到这两个目录在数据节点上被填满了,当我们只运行几分钟时,空间就用完了

/tmp/hadoop/data/nm local dir/filecache

/tmp/hadoop/data/nm local dir/filecache

这些目录不会自动清除,根据我的研究发现,需要设置此属性,warn.nodemanager.localizer.cache.cleanup.interval ms

即使在建立了这个…它不会自动清除任何帮助将不胜感激

<configuration>
    ~
    ~   <property>
    ~       <name>yarn.nodemanager.aux-services</name>
    ~       <value>mapreduce_shuffle</value>
    ~   </property>
    ~
    ~   <property>
    ~       <name>yarn.resourcemanager.hostname</name>
    ~       <value>hdfs-name-node</value>
    ~   </property>
    ~
    ~   <property>
    ~       <name>yarn.nodemanager.resource.memory-mb</name>
    ~       <value>16384</value>
    ~   </property>
    ~
    ~   <property>
    ~       <name>yarn.nodemanager.resource.cpu-vcores</name>
    ~       <value>6</value>
    ~   </property>
    ~
    ~   <property>
    ~       <name>yarn.scheduler.maximum-allocation-mb</name>
    ~       <value>16384</value>
    ~   </property>
         <property>
    ~       <name>yarn.nodemanager.localizer.cache.cleanup.interval-ms</name>
    ~       <value>3000</value>
    ~   </property>
    ~
    ~   <!-- Needs to be explicitly set as part of a workaround for YARN-367.
    ~      | If changing this property, you must also change the
    ~      | hadoop.tmp.dir property in hdfs-site.xml. This location must always
    ~      | be a subdirectory of the location specified in hadoop.tmp.dir. This
    ~      | affects all versions of Yarn 2.0.0 through 2.7.3+. -->
    ~   <property>
    ~       <name>yarn.nodemanager.local-dirs</name>
    ~       <value>file:///tmp/hadoop/data/nm-local-dir</value>
    ~   </property>
    ~
    ~ </configuration>

~
~   
~warn.nodemanager.aux-services
~mapreduce\u shuffle
~   
~
~   
~warn.resourcemanager.hostname
~hdfs名称节点
~   
~
~   
~warn.nodemanager.resource.memory-mb
~       16384
~   
~
~   
~warn.nodemanager.resource.cpu-vcores
~       6
~   
~
~   
~warn.scheduler.maximum-allocation-mb
~       16384
~   
~warn.nodemanager.localizer.cache.cleanup.interval-ms
~       3000
~   
~
~   
~   
~warn.nodemanager.local-dirs
~       file:///tmp/hadoop/data/nm-local-dir
~   
~
~ 

您的缓存清理间隔很好,但由于本地目录位于
/tmp
中,它可能会很快填满,通常
/tmp
的空间会更少。我的建议是将您的
warn.nodemanager.local dirs
更改为任何存储磁盘,如
/u01


warn.nodemanager.localizer.cache.cleanup.interval ms的建议值为
600000
10分钟
如果主要问题是空间不足,请尝试为warn属性“warn.nodemanager.localizer.cache.target size mb”设置较低的值。默认情况下,这是10240 MB(10GB)


至于自动清理没有被触发,那么这可能是由于(或至少与)Thread 2.7.1上报告了此未解决的错误:

感谢您的评论Bruce,即使我指向另一个目录..它也被填满了…我的问题是为什么自动清理没有启动…如果我们能够解决缓存指向的目录将不会成为问题。。。