首页 > 解决方案 > Spark 提交成功,但 Airflow Bash 操作员失败,退出代码为 127

问题描述

我正在使用气流 bash 运算符来运行 spark-submit 作业。spark 作业需要一些参数。最后一个参数是一个字符串,可以使用“,”和“|”转换成嵌套数组 分裂。示例提交命令:

spark-submit --verbose --master yarn --deploy-mode cluster --queue some_queue job.jar <dt> <s3bucket> <xx:yyy,zzz|ss:aaa,bbb>

奇怪的是,当 spark 作业完成时,它会输出:

final status: SUCCEEDED
Command exited with return code 127
ERROR - Bash command failed

有没有人遇到同样的问题,我该如何解决?我有许多其他使用 bash 运算符运行 spark 提交命令的气流作业,从未遇到过这样的问题。

标签: bashscalaapache-sparkhadoop-yarnairflow

解决方案


在最后一个参数中转义管道,如下所示:

spark-submit --verbose --master yarn --deploy-mode cluster --queue some_queue job.jar <dt> <s3bucket> <xx:yyy,zzz\|ss:aaa,bbb>

或者

spark-submit --verbose --master yarn --deploy-mode cluster --queue some_queue job.jar <dt> <s3bucket> "<xx:yyy,zzz|ss:aaa,bbb>"

推荐阅读