一个以前用的提交hadoop作业的shell脚本

做个笔记,用到的时候可以看一看。感谢大师兄!怀念校园那段日子。

#!/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



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值