【问题标题】:delete partitions folders in hdfs older than N days删除hdfs中超过N天的分区文件夹
【发布时间】:2017-10-08 22:39:07
【问题描述】:

我想删除超过 N 天的分区文件夹。

下面的命令给出了正好是 50 天前的文件夹。我想要所有少于 50 天的文件夹列表

hadoop fs -ls /data/publish/DMPD/VMCP/staging/tvmcpr_usr_prof/chgdt=`date --date '50 days ago' +\%Y-\%m-\%d`

【问题讨论】:

    标签: hadoop hdfs purge


    【解决方案1】:

    可以使用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
    

    【讨论】:

      【解决方案2】:

      你可以试试 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
      

      【讨论】:

        猜你喜欢
        • 2017-10-29
        • 2011-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多