2017-05-10 10 views
0

N 일이 지난 파티션 폴더를 삭제하려고합니다.N 일 이전의 hdfs에서 파티션 폴더 삭제

아래 명령은 정확하게 50 일 전의 폴더를 제공합니다. 나는 미만 오십일

이있는 모든 폴더의 목록을 원하는
hadoop fs -ls /data/publish/DMPD/VMCP/staging/tvmcpr_usr_prof/chgdt=`date --date '50 days ago' +\%Y-\%m-\%d` 

답변

1
당신은 SOLR의 hdfsfindtool으로 시도 할 수 있습니다

:

hadoop jar /opt/cloudera/parcels/CDH/lib/solr/contrib/mr/search-mr-job.jar org.apache.solr.hadoop.HdfsFindTool -find /data/publish/DMPD/VMCP/staging/tvmcpr_usr_prof -mtime +50 | xargs hdfs dfs -rm -r -skipTrash 
0

그것은 bash 스크립트

today=`date +'%s'` 
hdfs dfs -ls /data/publish/DMPD/VMCP/staging/tvmcpr_usr_prof/ | grep "^d" | while read line ; do 
dir_date=$(echo ${line} | awk '{print $6}') 
difference=$(((${today} - $(date -d ${dir_date} +%s))/(24*60*60))) 
filePath=$(echo ${line} | awk '{print $8}') 

if [ ${difference} -lt 50 ]; then 
    echo "${filepath}" 
fi 
done 
수행 할 수 있습니다