ITPub博客

首页 > 大数据 > Hadoop > linux脚本hadoop数据文件采集

linux脚本hadoop数据文件采集

Hadoop 作者:casablanca007 时间:2013-12-12 17:16:31 0 删除 编辑

#!/bin/bash

################################

#2013/12/11

#作者 方华龙

#hadoop数据文件采集

###############################

date

ROOT=`dirname $0`

CONF=./test.conf

#可以利用读取配置方法加载多个服数据

#for conf in `cat $CONF`

#do

# echo $conf

#done

#是用SCP采集1,WGET采集0

is_scp=0

#scp www@121.9.245.117:/data/resin/aclocal.m4 /data/test1.m4

nowtime=`date %s`

startTime=$(($nowtime-36000))

#hadoop保存地址

hadoopPath=/data/

#采集的服务器地址

urlserver=http://service.uwan.com

#采集账号地址

IPserver=www@121.9.245.117:

#采集服务器保存数据地址

getPath=/data/resin/

#日志保存目录

LOG=/data/warren/log/

#采集后保存的地址

savePath=/data/warren/data/

#检查LOCK

LOCK=.lock

if [ -f $LOCK ]

then

echo 'error!app is run!'

exit

fi

#上锁

touch $LOCK

#判断地址是否已经创建

if [ -d $savePath ]

then

echo 'file is Ok!'

else

mkdir $savePath

fi

#检查日志目录

if [ -d $LOG ]

then

echo 'log path is ok!'

else

mkdir $LOG

fi

#记录运行日志2>&1记录所有日志

exec >> $LOG/gather_`date %Y%m%d`.log 2>&1

#执行采集

while [ $startTime -le $nowtime ]

do

#拼凑采集文件的名称

filename=`date %Y%m%d%H -d "@$nowtime"`.log

savefilename=$savePath$filename

#判断文件是否已经存在

if [ -f $savefilename ]

then

is_repeat=1

else

is_repeat=0

fi

if [ $is_scp -eq 1 ]

then

scp $IPserver$getPath$filename $savefilename

else

url=$urlserver$getPath$filename

wget -O $savefilename $url

fi

#如果文件存在,推送到hadoop服务器

if [ -f $savefilename ]

then

if [ $is_repeat -eq 1 ]

then

$HADOOP_HOME/bin/hadoop fs -rm $hadoopPath/$filename

fi

$HADOOP_HOME/bin/hadoop fs -put $savefilename $hadoopPath/$filename

fi

nowtime=$(($nowtime-3600))

done

#解除锁

rm -rf $LOCK

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21170748/viewspace-1119693/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-03-21