做个笔记,用到的时候可以看一看。感谢大师兄!怀念校园那段日子。
#!/bin/sh
arg0=$0
arg1=$1
arg2=$2
arg3=$3
arg4=$4
arg5=$5
JAR=MyJob3-1.jar
JOBNAME=MyJob3
echo $#
args=$#
usage()
{
echo "Usage: $arg0 <nJobs> <s interval> <MapTask> <outputfile> [dataOverlap file number]"
}
run()
{
if [ $args -lt 4 ]; then
usage
exit
fi
HADOOP_STATUS=`hadoop job -list|grep -U1 JobId`
JOBS=`echo $HADOOP_STATUS|awk '{print $2}'`
while [ $JOBS != "jobs:0" ]; do
sleep 10
HADOOP_STATUS=`hadoop job -list|grep -U1 JobId`
JOBS=`echo $HADOOP_STATUS|awk '{print $2}'`
done
echo "TEST: Launch $arg1 jobs ($JOBNAME) using jar $JAR with $arg2 seconds interval. Input file is $arg3 and Output file is $arg4"
hadoop fs -rmr output*
if [ ! -d $arg4 ]; then
mkdir -p $arg4
fi
if [ $args -eq 5 ]; then
file=$arg5
else
file=6
fi
COUNT=0
for i in `seq $arg1`; do
index=$[$i%$file]
if [ $index -eq 0 ]; then
index=$file
fi
echo "hadoop jar $JAR $JOBNAME access$index-$arg3.log output$i"
(time `hadoop jar $JAR $JOBNAME access$index-$arg3.log output$i >/dev/null 2>&1`) 2>$arg4/log$i &
# (time `hadoop jar $JAR $JOBNAME access1-$arg3.log output$i >/dev/null 2>&1`) 2>$arg4/log$i &
COUNT=`expr $COUNT + 1`
sleep $arg2
done
}
run