升级版updateOozie.sh

以前的版本检测当天的Tar包,并只能选择1个Tar包进行更新代码,当天生成多个版本时需修改脚本中配置,并不方便。

升级版兼容目录下存在一个或者多个Tar包的情况:
1.单个Tar包时,直接解压缩到当前目录,并更新代码到HDFS;
2.多个Tar包并存时,创建各个Tar包对应的文件夹,将Tar包解压缩到各自的文件夹中。同时上传Oozie的脚本不自动执行,拷贝至各个文件夹中,供选择版本进行执行。

v2updateOozie.sh

#!/bin/bash

#Modify:
tardir=/home/yang
tarnum=4
alterjtIP=192.168.0.101
alternnIP=ns1

#Cannot Modify:
date=`date +%Y%m%d`
jtIP=192.168.0.212
nnIP=192.168.0.211:8020
hdfsdir=/user/root/


filecount=`ls *.tar | wc -l`

if [ ${filecount} -le 1 ]; then
    rm -rf oozie jars
    tarfile=`ls *.tar`
    tar xvf ${tarfile}

    cd oozie
    sed "s/${nnIP}/${alternnIP}/g" workflow.xml > wftmp1.xml
    sed "s/${jtIP}/${alterjtIP}/g" wftmp1.xml > wftmp2.xml
    cat wftmp2.xml > workflow.xml
    rm -f wftmp*

    echo -e "\033[32mReplace config completed.\033[0m"

    cd ${tardir}
    chown -R hdfs:hadoop oozie

    su hdfs -c "hadoop fs -test -e ${hdfsdir}"
    if [ $? -ne 0 ]; then
        su hdfs -c "hadoop fs -mkdir ${hdfspath}"
    fi
    su hdfs -c "hadoop fs -test -e ${hdfsdir}/oozie"
    if [ $? -ne 0 ]; then
        su hdfs -c "hadoop fs -put oozie ${hdfsdir}"
        echo -e "\033[32mUpload to hdfs completed.\033[0m"
        su hdfs -c "hadoop fs -ls ${hdfsdir}/oozie/"
    else
        su hdfs -c "hadoop fs -rm -r ${hdfsdir}/oozie"
        su hdfs -c "hadoop fs -put oozie ${hdfsdir}"
        echo -e "\033[32mUpdate oozie completed.\033[0m"
        su hdfs -c "hadoop fs -ls ${hdfsdir}/oozie/"
    fi
else
    for i in $(ls *.tar 2>/dev/null)
    do
        echo $i
        dirname=`echo ${i:11:10}`
        echo ${dirname}
        rm -rf ${dirname}
        mkdir ${dirname}
        rm -rf oozie jars
        tar xvf $i -C ${dirname}/
        cp uploadOozie.sh ${dirname}/

        cd ${dirname}
        cd oozie
        sed "s/${nnIP}/${alternnIP}/g" workflow.xml > wftmp1.xml
        sed "s/${jtIP}/${alterjtIP}/g" wftmp1.xml > wftmp2.xml
        cat wftmp2.xml > workflow.xml
        rm -f wftmp*

        echo -e "\033[32mReplace config completed.\033[0m"

        cd ..
        chown -R hdfs:hadoop oozie
        cd ..
    done
fi

搭配uploadOozie.sh

#!/bin/bash
hdfsdir=/user/root/

su hdfs -c "hadoop fs -test -e ${hdfsdir}"
if [ $? -ne 0 ]; then
    su hdfs -c "hadoop fs -mkdir ${hdfspath}"
fi
su hdfs -c "hadoop fs -test -e ${hdfsdir}/oozie"
if [ $? -ne 0 ]; then
    su hdfs -c "hadoop fs -put oozie ${hdfsdir}"
    echo -e "\033[32mUpload to hdfs completed.\033[0m"
    su hdfs -c "hadoop fs -ls ${hdfsdir}/oozie/"
else
    su hdfs -c "hadoop fs -rm -r ${hdfsdir}/oozie"
    su hdfs -c "hadoop fs -put oozie ${hdfsdir}"
    echo -e "\033[32mUpdate oozie completed.\033[0m"
    su hdfs -c "hadoop fs -ls ${hdfsdir}/oozie/"
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值