当前位置: 主页 > 脚本 > Shell >

在hadoop上一个分析日志的脚本

时间:2013-04-28 09:44来源:www.shencan.net 作者:shencan 点击:
根据上次发的并发脚本 改的 #!/bin/bash YUE=`date +%m` DAY=`date +%d` yue=`date +%Y%m` num=50 if [ -d /data/hadoop/HA/${yue}/${DAY}/ ] then echo else mkdir -p /data/hadoop/HA/${yue}/${DAY}/ fi stat=`date -d 1 hours ago +%Y%m%d%H`
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


根据上次发的并发脚本 改的

#!/bin/bash
YUE=`date +%m`
DAY=`date  +%d`
yue=`date  +%Y%m`
num=50
if  [ -d "/data/hadoop/HA/${yue}/${DAY}/" ]
then
echo “”
else
mkdir -p /data/hadoop/HA/${yue}/${DAY}/
fi
stat=`date  -d “1 hours ago” +%Y%m%d%H`
fifo=”fifo.tmp”
mkfifo $fifo
exec 3<>$fifo
rm -f $fifo
for((i=1;i<=$num;i++));do echo ;done >&3

for file in `hadoop fs -ls /user/hadoop/fdns_logs/${YUE}/${DAY}/CMN-HA-1-*/queries.log.*.${stat}*.gz|awk  ‘{print $NF}’`
do
FILE=`echo $file|awk -F”/” ‘{print $NF}’`

read
(
hadoop fs -text $file  |awk -F”[, |]” ‘{print $1,$2,$9,$10,$12,$15}’|while read V1 V2 V3 V4 V5 V6
do
TIME=`date -d “$V1 $V2″ +%s|awk ‘{print strftime(“%Y%m%d%H%M%S”,$0)}’`
if [ "$V6" == "success" ]
then
echo “$V3|$V4|$TIME|$V5|0″ >>/data/hadoop/HA/${yue}/${DAY}/$FILE.log
else
echo “$V3|$V4|$TIME|$V5|3″ >>/data/hadoop/HA/${yue}/${DAY}/$FILE.log
fi

done
echo >&3
)&

done <&3
wait
exec 3>&-

转载请注明linux系统运维
http://www.linuxyw.com/linux/Shell/Shell/20130428/136.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片