Airflow 中的 /tmp 文件夹在哪里?

Where is /tmp folder located in Airflow?

我知道我们可以通过将数据持久化到 /tmp 位置来在任务之间共享信息。因为每个任务都可以 运行 在不同的机器上。一个任务的 /tmp 如何可用于 Airflow 中的另一个任务?

您提到的共享只有在您使用 LocalExecutor 时才有可能 - 因为在这种情况下所有任务 运行 在同一台机器上。

如果您使用 Celery/Kubernetes 执行程序,“/tmp”数据共享将不起作用。如果任务在同一台机器上执行,它可能会意外地在 Celery Executor 上运行,但这一点不能保证。您可能会将所有需要此类共享的任务放在一台机器上,在使用“队列”的 Celery Executor 中 - 当您为一个队列创建单个 celery worker 时,分配给该队列的所有任务都将在该机器上执行(因此 / tmp 共享将起作用),但这会严重影响可扩展性和弹性方案。

您也可以将 Airlfow Deployment /tmp 放在共享文件系统上,但这会非常低效,因为“/tmp”文件夹通常用于文件的本地缓存和使用网络文件系统会严重影响性能。