目前,我的团队正在测试Airflow以创建Spark作业的工作流程。我们使用的是Airflow版本1.8.0。我们在远程计算机上运行Airflow Web服务器,我们所有人都可以通过SSH访问。另一个团队成员是从他自己的提示启动Web服务器的人,因此该过程显示为在他的用户名下运行。
我创建了自己的DAG,由服务器运行,基本上只是使用BashOperator的spark-submit命令的串行工作流程。当我通过Web界面运行这些作业时,它们被正确提交,我可以通过我们集群的HUE作业浏览器跟踪它们。 问题是它们未被我的用户名列为提交,它们被列为由运行Airflow网络服务器的团队成员的用户名提交。
有没有办法指定BashOperator作用的用户?或者是否有最佳实践说明如何最好地处理由单个用户提交的所有BashOperator任务?
非常感谢任何帮助,谢谢!
修改
看起来这可能是Airflow-357所描述的功能上的差距...但我仍然想知道是否存在我正在忽略的解决方法或方法/参数。
答案 0 :(得分:0)
在DAG定义的default_args中尝试'run_as_user':''。
这将在启动BashOperator时生成一个sudo -c