要在EC2上运行Apache Airflow任务,需要按照以下步骤进行设置:
步骤1:创建EC2实例 首先,创建一个EC2实例作为Airflow的主机。可以使用AWS控制台或AWS命令行界面创建EC2实例。确保选择一个适合您的需求的实例类型和配置。
步骤2:安装Apache Airflow 在EC2实例上,安装Apache Airflow。可以使用pip命令来安装Airflow:
pip install apache-airflow
步骤3:配置Airflow
在EC2实例上,配置Airflow的相关设置。创建一个Airflow配置文件,可以将其命名为airflow.cfg
。在配置文件中,设置以下参数:
[core]
dags_folder = /path/to/your/dag/folder
base_log_folder = /path/to/your/log/folder
[webserver]
web_server_host = 0.0.0.0
web_server_port = 8080
[scheduler]
child_process_log_directory = /path/to/your/scheduler/log/folder
确保将/path/to/your/dag/folder
,/path/to/your/log/folder
和/path/to/your/scheduler/log/folder
替换为实际的文件夹路径。
步骤4:启动Airflow Web服务器和调度器 在EC2实例上,启动Airflow Web服务器和调度器。使用以下命令分别启动Web服务器和调度器:
airflow webserver -p 8080
airflow scheduler
现在,您可以通过访问EC2实例的公共IP地址和Airflow的Web服务器端口(在上述配置中设置为8080)来访问Airflow Web界面。
步骤5:创建和运行任务
在EC2上创建Airflow任务(也称为DAG)。可以在/path/to/your/dag/folder
文件夹中创建Python脚本,定义Airflow任务的逻辑。以下是一个简单的示例:
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta
default_args = {
'owner': 'airflow',
'start_date': datetime(2021, 1, 1),
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG('my_dag', default_args=default_args, schedule_interval='@daily')
task1 = BashOperator(
task_id='task1',
bash_command='echo "This is task 1"',
dag=dag
)
task2 = BashOperator(
task_id='task2',
bash_command='echo "This is task 2"',
dag=dag
)
task1 >> task2
保存上述代码为my_dag.py
并将其放置在/path/to/your/dag/folder
文件夹中。
现在,您可以在Airflow的Web界面中创建和运行任务。在界面上,导航到"DAGs"选项卡,点击"Create"按钮创建一个DAG,并在"DAG Code"字段中输入my_dag
。然后,点击"Save"按钮保存DAG,并点击"Trigger DAG"按钮来运行任务。
这就是在EC2上运行Apache Airflow任务的基本步骤和示例代码。根据您的需求,可以进行更多的配置和自定义。