背景:
因公司每天中午11:08~11:40之间,DataNode所有的节点都会挂一会,主要是因为任务太过于集中的原因,在加上公司的HDFS的数据存储已经快达到了2P,DataNode的GC参数还是原来的4G,需要针对问题进行处理
处理方案:
先查看DataNode的GC情况
jps
jstat -gcutil 55336
查看FGC有1574次
1.先把集群中的小文件删除掉
#!/usr/bin/bash
rm -rf filepath_del.txt
tt=`date -d "1 day ago" +%Y%m%d`
hdfs dfs -ls /tmp/logs/hive/logs/ |sort -n -k5 | awk '{print $6,$NF}' |grep -v items | while read filetime filepath
do
timenum=$(date -d $filetime +%Y%m%d)
#echo $timenum
#echo $path
# 删除1天之前的数据
if [[ ${timenum} -le ${tt} ]];then
echo $filetime $filepath
echo $filetime $filepath >> filepath_del.txt
echo "hdfs dfs -rm -r -skipTrash $filepath " >> filepath_del.txt
hdfs dfs -rm -r -skipTrash $filepath
fi
done
2.调整DataNode的GC参数
DataNode 的 Java 堆栈大小(字节)= 4G
调整到以下参数
DataNode 的 Java 堆栈大小(字节)= 12G
3.重启DataNode
观察后问题解决
标签:处理过程,filepath,filetime,echo,FullGC,DataNode,GC,timenum From: https://blog.51cto.com/wang/6562265