我有一个pyspark脚本,该脚本现在可以很好地运行,我想做的是每分钟都计划该工作,并且我正在使用Apache Airflow,因此我为气流创建了一个.py文件,正在关注:
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta
import os
from builtins import range
import airflow
from airflow.models import DAG
from airflow.operators.dummy_operator import DummyOperator
srcDir = os.getcwd() + '/home/user/testing.py'
sparkSubmit = '/home/usr/spark-2.4.0-bin-hadoop2.7/bin/spark-submit'
default_args = {
"owner": "usr",
"depends_on_past": False,
"start_date": datetime(2019, 4, 8),
"email": ["abc@gmail.com"],
"email_on_failure": True,
"email_on_retry": True,
'retries': 5,
'retry_delay': timedelta(minutes=1),
}
dag= DAG('my_airflow',default_args=default_args, schedule_interval='* * * * *')
t1 = BashOperator(
task_id='task1',
bash_command='/home/user/spark-2.4.0-bin-hadoop2.7/bin/spark-submit' + ' ' + srcDir,
dag=dag,
)
但是当我由python3 air_flow.py
运行时,它既不在控制台上也不在Airflow UI上什么都没有显示。
我想知道如何让Apache Airflow在每分钟安排我的pyspark脚本吗?
任何帮助将不胜感激
答案 0 :(得分:1)
运行python3 air_flow.py
只是解析您的文件。
要按计划运行文件,首先需要启动Airflow Webserver和Airflow Scheduler。
# initialize the database
airflow initdb
# start the web server, default port is 8080
airflow webserver -p 8080
# start the scheduler
airflow scheduler
然后在浏览器上,访问http://localhost:8080,它将把您重定向到如下所示的Airflow Webserver UI:
您的脚本将每分钟自动运行一次。如果要从UI手动触发它,请单击DAG右侧的“运行”按钮。
遵循快速入门指南:https://airflow.readthedocs.io/en/1.10.2/start.html