从Cloud Composer运行java Google Dataflow作业

时间:2018-06-08 13:27:26

标签: airflow google-cloud-composer

目前我们正在使用自己在Kubernetes上安装的Airflow版本,但其目的是在Cloud Composer上进行迁移。我们使用Airflow使用自定义版本的DataFlowJavaOperator(使用插件)来运行数据流作业,因为我们需要执行jar中不自包含的java应用程序。所以我们基本上运行一个bash脚本来执行命令:

java -cp jar_folder/* MainClass

所有jar依赖项都存储在所有worker之间的共享磁盘中,但Composer中缺少此功能,我们不得不使用云存储来共享作业二进制文件。问题是使用gcsfuse从指向GCS的目录运行java程序非常慢。

您是否有任何建议在Cloud Composer中实施此类场景?

由于

1 个答案:

答案 0 :(得分:0)

Composer会自动将放置在gs://{your-bucket}/dagsgs://{your-bucket}/plugins中的内容同步到本地Pod文件系统。我们希望只复制dag和插件源代码,但不要阻止任何人存储其他二进制文件(尽管不建议这样做,因为您可能会超出磁盘容量,此时由于本地空间不足,工作流程执行会受到影响)。

fyi - 本地文件系统路径分别为:/home/airflow/gcs/dags/home/airflow/gcs/plugins