大数据集群在建立好之后,因为某些任务(例如处理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