Airflow 是否支持 jar 文件?

Does Airflow support jar file?

我是 Airflow 的新手。我有一些用 Talend Open Studio for Big Data 生成的 .jar 作业,我想用 Airflow 安排和管理这些作业我的问题是,Airflow 是否支持 .jar 文件或由 TOS 生成作为 DAG ? 如果它如何? 或者 Airlow 上是否有 运行.jar 的替代方案?

我使用 Airflow v1.10.3 这些工作主要是从 mongodb 数据库中提取和处理数据,然后用新处理的数据更新数据库。

谢谢!

Airflow 会愉快地 运行 .jar 文件。有几个例子可以让你看看。

运行 标准 .jar 文件:run_jar.py

运行一个"built" Talend jobl loan_application_data.py

显然,对于这两个示例,.jar 或 Talend 文件都需要位于 Airflow 正在执行的服务器上(以及 Java)。

Airflow 确实支持 运行 jar 文件。您可以通过 BashOperator 执行此操作。

快速示例:

from airflow import DAG
from airflow.operators import BashOperator
from datetime import datetime
import os
import sys

args = {
  'owner': 'you', 
  'start_date': datetime(2019, 4, 24),
  'provide_context': True
}


dag = DAG(
    task_id = 'runjar', 
    schedule_interval = None, #manually triggered 
    default_args = args)

run_jar_task= BashOperator(
  task_id = 'runjar',
  dag = dag,
  bash_command = 'java -cp /path/to/your/jar.jar param1 param2'
  )