升级版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
升级版updateOozie.sh的更多相关文章
- Kubernetes Master节点灾备恢复操作指南---升级版
本文档简述了Kubernetes主节点灾备恢复的相关步骤,供在发生k8s master崩溃时操作. 就算是在k8s里部署了etcd群集, 主节点控制组件的高可用节点,灾备恢复也是必须要实现的操作,才能 ...
- 数据库备份并分离日志表(按月)sh 脚本
#!/bin/sh year=`date +%Y` month=`date +%m` day=`date +%d` hour=`date +%H` dir="/data/dbbackup/f ...
- Linux下如何查找.sh后缀的文件
find / -name *.sh或locate *.shfind 与locate的区别:locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称
- sh 测试网段在线主机
yum install nmap nmap -sP 192.168.21.1/24 查看网段在线主机 grep -vwf file1 file2 文件内容比较 #!/bin/bash # day=` ...
- Maven打包生成可运行bat/sh脚本文件
利用Maven的appassembler-maven-plugin插件,就可以实现自动打包可运行的脚本,还可以跨平台. <plugin> <groupId>org ...
- 记一个简单的保护if 的sh脚本
真是坑爹,就下面的sh,竟然也写了很久! if [ `pwd` != '/usr/xx/bin/tomcat' ] then echo "rstall is not allowed in c ...
- 主机巡检脚本:OSWatcher.sh
主机巡检脚本:OSWatcher.sh 2016-09-26更新,目前该脚本只支持Linux操作系统,后续有需求可以继续完善. 注意: 经测试,普通用户执行脚本可以顺利执行前9项检查: 第10项,普通 ...
- Oracle巡检脚本:ORAWatcher.sh
Oracle巡检脚本:ORAWatcher.sh #!/usr/bin/ksh echo "" echo "ORAWatcher Version:1.0.1" ...
- 解决:/bin/sh: 1: /home/**/custom_app.sh: Permission denied错误
出现如下错误,一般是执行权限不够. /bin/sh: : /home/custom_app.sh: Permission denied 解决方法是:cd 到此文件目录,对提示的文件赋予可执行权限或读写 ...
随机推荐
- FFT/NTT总结+洛谷P3803 【模板】多项式乘法(FFT)(FFT/NTT)
前言 众所周知,这两个东西都是用来算多项式乘法的. 对于这种常人思维难以理解的东西,就少些理解,多背板子吧! 因此只总结一下思路和代码,什么概念和推式子就靠巨佬们吧 推荐自为风月马前卒巨佬的概念和定理 ...
- 【CF960G】Bandit Blues(第一类斯特林数,FFT)
[CF960G]Bandit Blues(第一类斯特林数,FFT) 题面 洛谷 CF 求前缀最大值有\(a\)个,后缀最大值有\(b\)个的长度为\(n\)的排列个数. 题解 完完全全就是[FJOI] ...
- luogu3195/bzoj1010 玩具装箱(斜率优化dp)
推出来式子然后斜率优化水过去就完事了 #include<cstdio> #include<cstring> #include<algorithm> #include ...
- pyinstaller模块使用
目前pip install pyinstaller已经成熟 但是还是有一些坑,郁闷了好久,记一下注意点吧. 将py脚本打包成exe文件时,如果导入了非python自带库,则需要将导入的库从site-p ...
- 离线安装.NET 3.5
最近为系统新增一个功能,写完以后进行部署,发现在IIS7上部署没有问题,但是IIS6上部署会出现未知情况,具体表现为取不到数据,估计是IIS6和IIS7直接的差异导致程序异常退出. 为了重现异常,在本 ...
- EFCodeFirst快速搭建入门
EFCodeFirst快速搭建入门 1.新建Model类库项目. 添加EntityFramework.dll的引用. 编写实体类Course,Student. namespace EFCodeFirs ...
- Asp: 解决脚本输出网页出现乱码情况
很久没碰asp,都有点生疏了,唉... 今天写一个小程序,发现网页静态部分输出不会乱码,asp脚本部分输出在360浏览器上会显示乱码,但在firefox和chrome上测试却不会显示乱码,我已经在代码 ...
- 11:SSM框架下各个层的解释说明
具体见网址:http://blog.csdn.net/lutianfeiml/article/details/51864160
- pascal,c,c++使用大于2^32整型的注意要点
如果在你的电脑出现以下这种现象,则说明这篇文章适合你,否则不必理会. 适用于取余 比如求n!除以1000000007(被除数较大)的余数. pascal: pascal输出不需要说明格式,而若式子运算 ...
- poj 1759(二分)
传送门:Problem 1759 https://www.cnblogs.com/violet-acmer/p/9793209.html 题意: 有N个彩灯关在同一条绳上,给出第一个彩灯的高度A,并给 ...