自动使用nohup命令执行火花作业的顺序

问题描述 投票:1回答:1

我需要根据各种文件分区将历史数据加载到配置单元表中。当前使用nohup命令调用Spark提交。我正在尝试创建一个包含所有nohup命令的脚本,这些脚本将在成功完成第一个nohup命令后顺序执行。

我尝试过

nohup 1
if [ ? = 0 ]; then
nohup 2

但是下一个nohup2命令在nohup1中的spark作业完成之前开始执行。

当前脚本:

nohup sh /home/spark_load1.sh
#After successful load1, start the next nohup
nohup sh /home/spark_load2.sh
#After successful load2, start the next nohup
nohup sh /home/spark_load3.sh

我希望第二次nohup执行仅在先前的nohup成功的情况下发生。

nohup sh /home/spark_load1.sh
#After successful load1, start the next nohup
nohup sh /home/spark_load2.sh
#After successful load2, start the next nohup
nohup sh /home/spark_load3.sh
apache-spark oozie nohup
1个回答
0
投票

这可以通过这种方式完成:

nohup sh /home/spark_load1.sh && sh /home/spark_load2.sh && sh /home/spark_load3.sh

并且不要忘了在末尾添加与号&,否则,如果连接断开,脚本将会停止。最好使用shebang来避免每次在外壳程序外部运行(将其作为外壳程序脚本的第一行添加并使其可执行))

#!/usr/bin/sh

在这种情况下,行会更短

nohup /home/spark_load1.sh && /home/spark_load2.sh && /home/spark_load3.sh
© www.soinside.com 2019 - 2024. All rights reserved.