当前位置: 代码迷 >> SQL >> 将很多段逻辑sql放在一个hive文件执行 停止提交的任务做法
  详细解决方案

将很多段逻辑sql放在一个hive文件执行 停止提交的任务做法

热度:335   发布时间:2016-05-05 09:35:38.0
将很多段逻辑sql放在一个hive文件执行 终止提交的任务做法

?

?

?

背景: 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里面的任务。

?

?

?