java 删除过期文件_定时脚本: 删除HDFS中的过期文件

本文介绍了如何使用Java编写脚本,通过Hadoop命令行工具定期检查并删除HDFS上超过设定时间的过期文件。脚本首先获取文件的修改时间,然后与当前时间对比,如果超出设定的过期天数,则执行删除操作。示例脚本还展示了如何处理多个目录,并提供了一个45天作为过期阈值的示例。
摘要由CSDN通过智能技术生成

1. 基本原理:

通过hadoop fs -ls *命令获取相关文件或目录的修改时间,然后与设定的过期时间进行比较,之后执行删除操作即可

2. 相关代码:

#!/bin/bash

source ~/.bashrc

# HADOOP所在的bin目录

HADOOP_BIN_PATH=/home/hadoop/hadoop-2.3.-cdh5.0.0/bin

#待检测的HDFS目录

data1_file=/user/gas/data1

data2_file=/user/gas/data2

#将待检测的目录(可以为多个)加载至数组中

array_check=($data1_file $data2_file)

# 当前时间戳

today_timestamp=$(date -d "$(date +"%Y-%m-%d %H:%M")" +%s)

#Func: 删除指定时间之前的过期,这里设置的是45天前

removeOutDate(){

$HADOOP_BIN_PATH/hadoop fs -ls $ > temp.txt

cat temp.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 $((***)) ];then

echo "$(date +'%Y-%m-%d %H:%M:%S') $filepath"

$HADOOP_BIN_PATH/hadoop fs -rm -r $filepath > /dev/null >&

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"

}

# 开始执行

execute

减小ipa体积之删除frameWork中无用mach-O文件

最近项目末期, 我们团队为了ipa的大小使用不少的体积减小的方法, 除了一些常规的方法之外, 我分享一下自己研究出来的新思路. 首先我们来简单的介绍一下mach-O. 什么是mach-O? Mach- ...

Spark读取HDFS中的Zip文件

1. 任务背景 近日有个项目任务,要求读取压缩在Zip中的百科HTML文件,经分析发现,提供的Zip文件有如下特点(=>指代对应解决方案): (1) 压缩为分卷文件 => 只需将解压缩在同 ...

如何优雅地删除 Linux 中的垃圾文件

不知道大家是否也跟我一样,是一只要把的自己电脑文件安排的条理有序,把没用的文件会及时删掉的程序猿呢?如果是的话,那么我们可以愉快地探讨下文章的内容.如果不是的话,你也可以留下来凑凑热闹嘛(>-& ...

Eclipse/MyEclipse向HDFS中如创建文件夹等操作报错permission denied解决办法

不多说,直接上干货! 问题现象 当执行创建文件的的时候, 即: String Path = "hdfs://host2:9000"; FileSystem fileSystem = ...

git 彻底删除历史记录中的大文件

Reference 大家一定遇到过在使用Git时,不小心将一个很大的文件添加到库中,即使删除,记录中还是保存了这个文件.以后不管是拷贝,还是push/pull都比较麻烦. === 删除大文件方法 方法 ...

删除xcode中的描述文件的路径

打开Finder  commend + shift +g 进入文件夹  : ~/Library/MobileDevice/Provisioning Profiles  删除即可

Linux删除文件名中包含“-”的文件

背景: 练习用shell的一些特殊符号,输出了一个 cat test.txt > -n,结果创建了一个叫做“-n”的文件   问题: 使用rm -f -n删除不了“-n"文件   解决 ...

如何删除Python中文本文件的文件内容?

在python中: open('file.txt', 'w').close() 或者,如果你已经打开了一个文件: f = open('file.txt', 'r+') f.truncate(0) # ...

使用shell脚本删除30天以前的文件

#!/bin/bashlocation=/root/rmfind $location -mtime +30 -print | xargs rm -rf //-mtime是距离上一次修改时间 -prin ...

随机推荐

Quick-Cocos2d-x v3.3 异步加载Spine方案 转

Quick-Cocos2d-x v3.3 异步加载Spine方案 浩月难求也与2015-03-25 15:06:3441 次阅读 背景 项目中使用了Quick-Cocos2d-x 3.3,由于Spin ...

51nod 1613翻硬币

题目链接:51nod 1613 翻硬币 知乎上的理论解法http://www.zhihu.com/question/26570175/answer/33312310 本题精髓在于奇偶性讨论. 若 n ...

【java】之转码

GBK->UTF-8 String str = "任意字符串"; str = new String(str.getBytes("gbk"),"u ...

【TCP协议】(3)---TCP粘包黏包

[TCP协议](3)---TCP粘包黏包 有关TCP协议之前写过两篇博客: 1.[TCP协议](1)---TCP协议详解 2.[TCP协议](2)---TCP三次握手和四次挥手 一.TCP粘包.拆包图 ...

自动登录(过滤器filter的应用)

//反复实验的时候注意数据库数据的更新 //将数据存储到cookie里面 protected void doGet(HttpServletRequest request, HttpServletRes ...

第十九节:Java基本数据类型,循环结构与分支循环

基本数据类型 Java中的基本数据类型,有8种,在Java中有四种类型,8种基本数据类型. 字节 boolean 布尔型为1/8 byte 字节类型为1 short 短整型为2 char 字符型为2 ...

20145236《网络对抗》Exp2 后门原理与实践

20145236Exp2 后门原理与实践 目录: 一.基础问题回答 二.常用后门工具实践 2.1 Windows获得Linux Shell 2.2 Linux获得Windows ...

STM32下载Bin文件的几种方式

一.STM32 ST-LINK Utility 1.下载安装软件 官网下载地址:http://www.st.com/zh/development-tools/stsw-link004.html 百度网 ...

Android平台上优秀的开源项目

软件名:gaeproxy 软件作用:Android手机配置GoAgent. 项目地址:https://github.com/madeye/gaeproxy.git 软件名:ProxyDroid 软件作 ...

“微软热爱Linux“ – 心声传遍中国

去年十月微软CEO Satya Nadella在旧金山的活动中说 “微软热爱Linux(Microsoft loves Linux)”,这句话让诸多人感到惊喜.至此之后,您可以在众多Linux和开源的 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值