【发布时间】:2019-08-23 10:33:01
【问题描述】:
我需要根据各种文件分区将历史数据加载到配置单元表中。目前正在使用 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
【问题讨论】:
-
我认为这不是最好的方法,您是否考虑过为此使用诸如气流之类的编排工具
-
不使用 nohup 怎么办?
-
@thebluephantom - 项目的设计方式是包装外壳脚本调用 spark 提交。你能告诉我如何在没有 nohup 的情况下执行吗?
-
主 LINUX 脚本上的 Nohup 使用 nohup 调用其他脚本。我目前不在 LINUX 等领域工作,所以我无法检查,但我似乎记得。我还会使用日程安排工具、Oozie、Airflow 或其他一些社区版工具。
-
尝试根据第一个进程 id 调用下一个 nohup 执行,例如 while(!{process_id}){"sleep 1s"}
标签: apache-spark oozie nohup