首页 > 其他分享 >HDFS批量清理过期文件

HDFS批量清理过期文件

时间:2024-09-13 11:23:09浏览次数:9  
标签:-% HDFS 批量 hdfs 过期 timestamp HADOOP echo date

#!/bin/bash
source ~/.bashrc

#HADOOP所在的bin目录
HADOOP_BIN_PATH=/opt/cloudera/parcels/CDH/bin

#待检测的HDFS目录
d1=/tmp1
d2=/tmp/sac-sac1
d3=/tmp/cep-bu4
d4=/tmp/test_data_standard
d5=/tmp/test_data_standard_sac

#将待检测的目录(可以为多个)加载至数组中
array_check=($d1 $d2 $d3 $d4 $d5)

#当前时间戳
today_timestamp= ( d a t e − d " (date -d " (date−d"(date +“%Y-%m-%d %H:%M”)" +%s)

#当月、上个月生产过滤条件
#ml= ( d a t e − d ′ l a s t m o n t h ′ + " m = (date -d 'last month' +"%Y-%m") m= (date−d′lastmonth′+"m=(date +“%Y-%m”)
#g="^d| “ m " ∣ " m"| " m"∣"ml
g=”^d| "$m

#Func: 删除指定时间之前的过期,这里设置的是30天前
removeOutDate(){
$HADOOP_BIN_PATH/hdfs dfs -ls -R 1 ∣ g r e p − E − v " 1 | grep -E -v " 1∣grep−E−v"g" > lstemp
echo “ls completed!”
# 管道输入重定向: cat F I L E N A M E ∣ w h i l e r e a d 。。。 q u a n x i a n t e m p 将读取出来的一行拆分成各个参数使用! c a t l s t e m p ∣ w h i l e r e a d q u a n x i a n t e m p u s e r g r o u p s i z e d a y h o u r f i l e p a t h d o c u r r e n t f i l e t i m e = " FILENAME | while read 。。。 quanxian temp 将读取出来的一行拆分成各个参数使用! cat lstemp | while read quanxian temp user group size day hour filepath do current_file_time=" FILENAME∣whileread。。。quanxiantemp将读取出来的一行拆分成各个参数使用!catlstemp∣whilereadquanxiantempusergroupsizedayhourfilepathdocurrentf​ilet​ime="day h o u r " c u r r e n t f i l e t i m e s t a m p = hour" current_file_timestamp= hour"currentf​ilet​imestamp=(date -d “$current_file_time” +%s)
if [ ${quanxian:0:1}=“-” ]&&[ ( ( (( ((today_timestamp-$current_file_timestamp)) -ge $((302460*60)) ];then
echo “deltime: $(date +‘%Y-%m-%d %H:%M:%S’) fileinfo: d a y : day: day:hour $filepath” >> delfilelog
# $HADOOP_BIN_PATH/hdfs dfs -rm -r $filepath > /dev/null 2>&1
# cat delfilelog | awk ‘{print $6}’ |xargs hdfs dfs -rm -r
# nohup cat delfilelog | grep ‘/tmp1’ | awk ‘{print $6}’ |xargs hdfs dfs -rm -r &
fi
done
}

#Func: 执行删除
execute(){
echo -e “\n\n”
echo “ ( d a t e + ′ e c h o " (date +'%Y-%m-%d %H:%M:%S') start to remove outdate files in hdfs" echo " (date+′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"

}

#开始执行
execute

标签:-%,HDFS,批量,hdfs,过期,timestamp,HADOOP,echo,date
From: https://blog.csdn.net/sunxunyong/article/details/142133559

相关文章

  • 批量获取抖音直播间弹幕数据api:实时弹幕评论数据
    抖音作为当下最热门的短视频平台之一,拥有庞大的用户群体和活跃度,为电商行业带来了巨大的商业机会。抖音商品详情接口作为连接抖音平台和电商系统的关键纽带,具有重要的作用。本文将深入探讨抖音商品详情接口在电商行业中的重要性,并介绍如何通过代码实现实时数据获取,帮助电商企业更好......
  • 快速编写一款python漏洞批量检测工具
    一、前言以下列检测脚本示列:importrequestsimporturllib3importre,string,randomfromurllib.parseimporturljoinimportargparseimporttimeimportsslssl._create_default_https_context=ssl._create_unverified_contexturllib3.disable_warnings(ur......
  • 【Azure Service Bus】批量处理Service Bus Topic 中的死信消息(dead-lettered messag
    问题描述在Azure的门户页面上,因为ServiceBusTopic中有很多dead-letteredmessage,而这些消息占用了大量的存储空间,通过门户上的ServiceBusExplorer每次只能消费一条消息。虽然可以通过修改代码来指定消费私信队列中消息,但是需要修改代码,需要一些工作量。 有没有现成的工具可以......
  • 【Azure Service Bus】批量处理Service Bus Topic 中的死信消息(dead-lettered messag
    问题描述在Azure的门户页面上,因为ServiceBusTopic中有很多dead-letteredmessage,而这些消息占用了大量的存储空间,通过门户上的ServiceBusExplorer每次只能消费一条消息。虽然可以通过修改代码来指定消费私信队列中消息,但是需要修改代码,需要一些工作量。 有没有现成的工具......
  • spoon、mysql数据导入hive,分别使用hdfs导入,或者修改配置
    一、mysql通过hdfs导入到hive—spoon    首先要在要在主对象树里边ADD一个hadoop然后在文件安装位置找到这个next后会出现这个,然后就可以把这页面关闭然后新建项目选择这两个,如果没有选择选项,重启软件就会有了然后选择这几个文件从服务器hadoopetc的配置文......
  • VCSA基于ansible批量创建虚拟机
    基于ansible批量创建虚拟机安装模块pipinstall--upgradeansiblepipinstallPyVmomiansible-galaxycollectioninstallcommunity.vmwareansiblevmware_guest如果需要配置IP和计算机名需要安装VMwaretools----hosts:localhost##在本机执行gather_facts:......
  • ansible批量修改主机名
    (1)hosts文件[task]IP地址1 hostname=主机名1IP地址2 hostname=主机名2IP地址3 hostname=主机名3[task:vars]ansible_become=yesansible_become_method=sudoansible_become_user=rootansible_become_password=密码ansible_user=用户ansible_password=密码ansible_python_int......
  • 批量归一化(李沐老师课程)
    训练时候存在的问题为什么要做批量归一化批量归一化(BatchNormalization,BN)是一种用于加速深度学习模型训练的技术。它通过标准化每层网络的输入(通常是前一层网络的输出),使得网络中的每一层都能接收到具有相同分布的输入数据。这有助于解决训练过程中出现的一些问题,以下是......
  • 视频监控推流助手/极低延迟/支持N路批量多线程推流/264和265推流/监控转网页
    一、前言说明搞视频监控开发除了基本的拉流以外,还有个需求是推流,需要将拉到的流重新推流到流媒体服务器,让流媒体服务做转发和负载均衡,这样其他地方只需要问流媒体服务器要视频流即可。为什么拉了又重新推呢,因为软件这边和可能拉流后做了处理,比如做了人工智能运算,识别到了物体方框......
  • 【私有云场景案例分享③】批量回归测试自动化流程
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途一、前言在软件开发生命周期中,回归测试是必不可少的环节。它确保新功能的引入不会破坏现有功能。然而,手动进行这些测试不仅效率低,且容易疏漏测试点。如果通过Devi......