Airflow 气流计划程序无法通过WSL执行Windows EXE
我的Windows 10机器在WSL2(Ubuntu-20.04)中安装了气流1.10.11 我有一个BashOperator任务,它在Windows上调用.EXE(通过/mnt/c/…或通过symlink)。 任务失败了。日志显示:Airflow 气流计划程序无法通过WSL执行Windows EXE,airflow,windows-subsystem-for-linux,airflow-scheduler,wsl-2,Airflow,Windows Subsystem For Linux,Airflow Scheduler,Wsl 2,我的Windows 10机器在WSL2(Ubuntu-20.04)中安装了气流1.10.11 我有一个BashOperator任务,它在Windows上调用.EXE(通过/mnt/c/…或通过symlink)。 任务失败了。日志显示: [2020-12-16 18:34:11,833] {bash_operator.py:134} INFO - Temporary script location: /tmp/airflowtmp2gz6d79p/download.legacyFilesnihvs
[2020-12-16 18:34:11,833] {bash_operator.py:134} INFO - Temporary script location: /tmp/airflowtmp2gz6d79p/download.legacyFilesnihvszli
[2020-12-16 18:34:11,833] {bash_operator.py:146} INFO - Running command: /mnt/c/Windows/py.exe
[2020-12-16 18:34:11,836] {bash_operator.py:153} INFO - Output:
[2020-12-16 18:34:11,840] {bash_operator.py:159} INFO - Command exited with return code 1
[2020-12-16 18:34:11,843] {taskinstance.py:1150} ERROR - Bash command failed
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/airflow/models/taskinstance.py", line 984, in _run_raw_task
result = task_copy.execute(context=context)
File "/usr/local/lib/python3.8/dist-packages/airflow/operators/bash_operator.py", line 165, in execute
raise AirflowException("Bash command failed")
airflow.exceptions.AirflowException: Bash command failed
[2020-12-16 18:34:11,844] {taskinstance.py:1187} INFO - Marking task as FAILED. dag_id=test-dag, task_id=download.files, execution_date=20201216T043701, start_date=20201216T073411, end_date=20201216T073411
就这样。返回代码1
,没有其他有用信息
通过bash运行完全相同的EXE可以完美地工作,没有错误(我也在我自己的程序上尝试过,该程序会向控制台发出一些信息-在bash中,它发出的信息很好,但是通过airflow scheduler
这是相同的错误1)
为了排除任何其他问题,我又做了一些数据和事情:
以root用户身份运行。我还通过在我的BashOperator中放置一个气流计划程序
命令来确认它在whoami
上下文中运行,该命令确实发出root
(我还应该注意,所有本机Linux程序都运行得很好!只有Windows程序没有)root
- 我正在尝试执行的Windows EXE及其目录具有完全的“Everyone”权限(当然,在我自己的程序上,我不敢在我的Windows文件夹上执行它-这只是一个示例。)
- 在通过/mnt/c访问以及通过symlink访问时都会发生故障。对于符号链接,符号链接具有777个权限
- 我试着在一个BashOperator任务上运行
,它运行得很好-将输出发送到控制台并返回0(成功)气流测试
- 尝试使用各种EXE文件-既有“本机”(例如Windows附带的文件)也有我的C#制作的程序。所有人的行为都是一样的
- 在Airflow的GitHub repo和Stack Overflow中都没有发现任何类似的问题
错误1
?