HDFS数据定期清理
HDFS数据清理一些办法:
datanode数据做reblance
清理临时目录、日志目录文件
全量分区表历史分区清理
使用lzo,orc格式进行数据压缩
清理或者归档历史冷数据
增加datanode横向扩容
附上自动清理目录下过期的文件
#!/bin/bash
source ~/.bash_profile
# 将待检测的目录(可以为多个)加载至数组中
yarn_log_dir=/app-logs/spark/logs
spark_log_dir=/spark-history
spark2_log_dir=/spark2-history
mr_log_dir=/mr-history/done/$(date +"%Y/%m" -d "-1 days")
array_check=($yarn_log_dir $mr_log_dir)
# 过期天数
expire_days=14
# 当前时间戳
today_timestamp=$(date -d "$(date +"%Y-%m-%d %H:%M")" +%s)
#Func: 删除指定时间之前的过期
removeOutDate(){
hadoop fs -ls $1 > temp_list.txt
cat temp_list.txt | while read quanxian temp user group size day hour filepath
do
current_file_time="$day $hour"
current_file_timestamp=$(date -d "$current_file_time" +%s)
if [ $(($today_timestamp-$current_file_timestamp)) -ge $(($expire_days*24*60*60)) ];then
echo "$day $hour $size $filepath"
hadoop fs -rm -r -skipTrash $filepath > /dev/null 2>&1
fi
done
}
#Func: 执行删除
execute(){
echo -e "\n\n"
echo "$(date +'%Y-%m-%d %H:%M:%S') start to remove outdate files in hdfs"
echo "$(date +'%Y-%m-%d %H:%M:%S') today is: $(date +"%Y-%m-%d %H:%M:%S")"
for i in ${array_check[@]}
do
echo "$(date +'%Y-%m-%d %H:%M:%S') processing filepath: $i"
removeOutDate $i
echo -e "\n"
done
echo "$(date +'%Y-%m-%d %H:%M:%S') remove outdate files in hdfs finished"
echo -e "\n\n"
rm -f temp_list.txt
}
# 开始执行
execute
最新文章
- Smarty的基本使用与总结
- rabbitMQ第五篇:Spring集成RabbitMQ
- Javascript中判断变量是 array还是object(是数组还是对象)
- PRD产品需求文档
- java高薪之路__005_IO流
- linux 错误处理
- CUBRID学习笔记 36 在net中添加多行记录
- salon_百度百科
- 解决phpstorm ftp自动保存文件问题
- 【bzoj2151】种树
- 注意UTF-8-BOM 这个编码格式
- 命令行方式登录PostgreSQL
- windows server 2008 远程连接
- DDMS调试信息
- easyui-combo个人实例
- BZOJ3524 &; LOJ2432:[POI2014]代理商Couriers——题解
- Linux下文件属性(drwxr-xr-x)详解以及(-rwxrwxrwx=777)(转)
- 18、Flask实战第18天:Flask-session
- Python多进程之multiprocessing模块和进程池的实现
- GitHub---github入门