?
?
?
背景: hive工作中,将很多etl 脚本写在一起,然后整体提交,提交后突然后悔想取消
?
?
eg:
?
qyjssum.sh:
?
sudo -u hdfs hive -e "
??? use ste_qyjs;
?
??? 清洗逻辑1.....
?
?
??? 清洗逻辑2....
?
??? 清洗逻辑3......
?
"
?
调用写法:
nohup /cloud/qyjs_sum_generate.sh > /cloud/qyjs_sum_generate.log? 2>&1 &
tail -f? /cloud/qyjs_sum_generate.log?
?
一般想杀死用:
?
ps? -ef | grep qyjs_sum_generate.sh
此时会出现三个进程描述信息和ID,
第一个是 grep这条语句的进程
第二个是上面 nohup调用grep qyjs_sum_generate.sh 的进程
第三个是这个任务提交成mr任务的进程
一般直 kill -9 第二个 第三个进程即可,
?
但是昨天我用这种方式杀不死,现象是:
?? 清洗逻辑1.....??
?
?
??? 清洗逻辑2....
?
??? 清洗逻辑3......
?
杀死了这个进程后,? 清洗逻辑2的进程提交上去,然后杀死清洗逻辑2的 清洗逻辑3的有提交上去,
具体原因我不知道,但是最后的做法就是:
?
hadoop job -list 查看产生的 hadoop job
然后用 hadoop job -kill jobid方式 出现一个杀死一个 这种方式实现完全杀死整个sh里面的任务。
?
?
?