可以使用hadoop fs -ls查找超过N天(从当前日期开始)的所有目录吗?
我正在尝试编写一个清理例程来查找和删除HDFS上的所有目录(匹配模式),这些目录是在当前日期之前N天创建的.
Lor*_*dig 17
此脚本列出了早于[days]以下的所有目录:
#!/bin/bash
usage="Usage: $0 [days]"
if [ ! "$1" ]
then
echo $usage
exit 1
fi
now=$(date +%s)
hadoop fs -lsr | grep "^d" | while read f; do
dir_date=`echo $f | awk '{print $6}'`
difference=$(( ( $now - $(date -d "$dir_date" +%s) ) / (24 * 60 * 60 ) ))
if [ $difference -gt $1 ]; then
echo $f;
fi
done
Run Code Online (Sandbox Code Playgroud)
如果您碰巧使用CDHHadoop的发行版,它会附带一个非常有用的HdfsFindTool命令,其行为类似于Linux的find命令.
如果您使用的是默认宗地信息,请按以下步骤操作:
hadoop jar /opt/cloudera/parcels/CDH/jars/search-mr-*-job.jar \
org.apache.solr.hadoop.HdfsFindTool -find PATH -mtime +N
Run Code Online (Sandbox Code Playgroud)
在哪里用搜索路径替换PATH,用天数替换N.
| 归档时间: |
|
| 查看次数: |
15802 次 |
| 最近记录: |