首页 > Web开发 > 详细

linux本地日志文件定时上传至HDFS

时间:2021-05-25 22:44:49      阅读:58      评论:0      收藏:0      [点我收藏+]

背景

项目中需要定时将本地文件上传至HDFS系统,按时间进行分目录存放,即每月1号生成一个月的目录,然后将这个月每天的数据存放在此目录下

技术分享图片

 

 

实现逻辑: 通过判断当天日期,如果为本月一号,即先生成一个月的文件,然后再将数据存放在此目录下,如果不是当月1号,则直接把数据put到该目录下

export PATH =/opt/soft/hadoop-2.7.7/bin
DAY=`date +%d`                                              #获取当天日期
date=$(date -d "yesterday" +%Y%m%d)                         #获取昨日日期
if [ $DAY -eq 1 ]                                           #判断是否为1号,不等于直接 -eq 改为<>
then
/opt/soft/hadoop-2.7.7/bin/hdfs dfs -mkdir /flume/data/logs/`date +%Y%m`        #新建目录           
/opt/soft/hadoop-2.7.7/bin/hdfs dfs -mkdir /flume/data/logs/`date +%Y%m`/`date +%Y%m%d`
/opt/soft/hadoop-2.7.7/bin/hadoop dfs -put /opt/data/wfbmall/16/history/wfbmall_${date}.log /flume/data/logs/`date +%Y%m`/wfbmall_${date}.log     #put本地文件
echo today first day of this month
else
/opt/soft/hadoop-2.7.7/bin/hdfs dfs -mkdir /flume/data/logs/`date +%Y%m`/`date +%Y%m%d`
#date=$(date -d "yesterday" +%Y%m%d)
/opt/soft/hadoop-2.7.7/bin/hadoop dfs -put /opt/data/wfbmall/16/history/wfbmall_${date}.log /flume/data/logs/`date +%Y%m`/wfbmall_${date}.log    #直接put本地目录
echo ${date}
echo today is not first day of this month
fi

  

linux本地日志文件定时上传至HDFS

原文:https://www.cnblogs.com/cstark/p/14809984.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!