• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

从mysql读取配置,定期删除hdfs上的文件

hdfs wangting 2年前 (2017-07-27) 938次浏览

 

1 mysql表结构

从mysql读取配置,定期删除hdfs上的文件

 

2 定义mysql连接信息

TABLE=data_cycle
HOST_NAME=”mysql.data.xxx.com.cn”
DB_NAME=”suda_portal_data”
USER_NAME=”suda”
PASSWD=”xxxxx”
MYSQL_ETL=”mysql -h $HOST_NAME -P4053 -D$DB_NAME -u$USER_NAME -p$PASSWD -N –default-character-set=utf8 -e “

 

3 查询出需要删除的记录写到文件

sql_get=”SELECT * FROM $TABLE;”
$MYSQL_ETL “$sql_get” > new_user.txt

 

4 按行读文件开始删除

# 用到awk 取每行的字段

cycle=""
cat new_user.txt | while read line
do
# 获取参数
user=`echo "$line" | awk -F '\t' '{print $1}'`
prefix=`echo "$line" | awk -F '\t' '{print $2}'`
path=`echo "$line" | awk -F '\t' '{print $3}'`
cycle=`echo "$line" | awk -F '\t' '{print $4}'`
format=`echo "$line" | awk -F '\t' '{print $5}'`

str=$cycle" days ago"
echo $cycle
# 拼接路径格式
lastday=`date –date="$str" +$format`
echo $lastday
echo $path$prefix$lastday

hadoop fs -rmr $path$prefix$lastday

done


喜欢 (2)