大数据集群清理缓存

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdkyxy2013/article/details/82873890

       大数据集群在建立好之后,因为某些任务(例如处理SQL语句等)可能会出现各组件失联、CPU巨高或ssh登录不了的问题。我们可以通过清理缓存来解决内存的问题。大数据集群因为每天都会处理大量的数据,所以会有大量的缓存,如果 不及时的清理就会出现节点失联等上述问题。

       我们可以使用命令手动进行缓存的清理,命令如下:

1、To free pagecache, use
echo 1 > /proc/sys/vm/drop_caches

2、To free dentries and inodes, use
echo 2 > /proc/sys/vm/drop_caches

3、To free pagecache, dentries and inodes, use
echo 3 >/proc/sys/vm/drop_caches

       但是大多数情况下,程序员更希望通过shell脚本和定时任务来使得清理缓存的工作自动执行。这里我们也给出相应的shell脚本,以小编所使用的集群为例。shell脚本如下:

#!/bin/bash

for i in {111,112,113}; 
do 
ssh 192.168.0.$i "echo 3 > /proc/sys/vm/drop_caches"; 
done

       通过crontab定时任务对上面的定时脚本进行调度,会实现在指定的时间对大数据的集群进行清理的工作。例如:

#每天晚上8点执行清理缓存的操作

0 20 * * * bash /opt/files/cache/delete_cache.sh

 

没有更多推荐了,返回首页