hdfs-文件上传告警脚本-编码开发

1:滚动产生日志
xxx.log xxx.log     xxx.log
xxx.log.1   xxx.log.1
   xxx.log.2
由于新建日志比上传慢,所以会一直上传xxx.log.1而不会等到xxx.log.2
会导致一个命名重复问题
2:重命名移动过后的日志文件(buffer区间)
3:上传hadoop
4:运行sh shell文件测试
5:crontab定时执行任务
*/1 * * * * sh /root/文件名.sh
6:查看是否上传错误,上传失败后执行jar,发信息给用户
  2个文件内容是否有差异,记录显示给文件3
  grep -vxFf filePath1 filePath2 > 文件3


#set hadoop env
export HADOOP_HOME=/export/servers/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH


#set java env
export JAVA_HOME=/export/servers/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH


#日志文件存放的目录
log_src_dir=/root/


#日志文件上传到hdfs的根路径
hdfs_root_dir=/sanbox/mobile_click/20161231/


#读取日志文件的目录,判断是否有需要上传的文件


ls $log_src_dir | while read fileName
do
        if [ "xxx.log.1" = "$fileName" ];then
#文件添加时间,防止文件名重复错误
                executeTime=`date +%Y_%m_%d_%H_%M_%S`
                hadoop fs -put $log_src_dir$fileName $hdfs_root_dir$executeTime$fileName
                rm $log_src_dir$fileName
        fi
done


版本2
ls $log_src_dir | while read fileName
do
        if [ "xxx.log.1" = "$fileName" ];then
#文件添加时间,防止文件名重复错误
                executeTime=`date +%Y_%m_%d_%H_%M_%S`
#将需要上传的文件移动到待上传目录
mv $log_src_dir$fileName $log_appending_dir"xxxx_click_log_"$executeTime
#按照一定格式重命名
echo $log_appending_dir"xxxx_click_log_"$executeTime >> /export/data/click_log/
willDoing.$executeTime
        fi
done
#_COPY_:hdfs上传文件时会在文件后面追加此后缀,过滤此后缀的文件
ls $log_appending_dir |grep will |grep -v "_COPY_" |grep -v "_DONE_" | while read line 
do 
mv $log_appending_dir$line $log_appending_dir$line"_COPY_"
cat $log_appending_dir$line"_COPY_" |while read line
do 
hadoop fs  -put $line $hdfs_root_dir
done
mv $log_appending_dir$line"_COPY_" $log_appending_dir$line"_DONE_"
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值