我需要根据不同的文件分区将历史数据加载到hive表中。Spark submits目前正在使用nohup命令调用。我正在尝试创建一个脚本,其中将包含所有的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
发布于 2019-12-07 22:25:02
这可以通过以下方式完成:
nohup sh /home/spark_load1.sh && sh /home/spark_load2.sh && sh /home/spark_load3.sh
别忘了在末尾加上&和&
,否则如果你的连接断开了,脚本就会停止。使用so name shebang来避免每次在shell外部运行也是一个很好的做法(将此作为shell脚本的第一行添加并使其可执行)
#!/usr/bin/sh
在这种情况下,这行将会更短
nohup /home/spark_load1.sh && /home/spark_load2.sh && /home/spark_load3.sh
https://stackoverflow.com/questions/57624500
复制相似问题