airflow使用(一)

最近在使用airflow

下载anaconda3 ,然后配置环境变量。pip install airflow 或者 pip install apache-airflow 

下载code进行脚本配置,code 配置之后提交git,在Jenkins上面进行构建任务,任务及airflow任务都构建。然后去airflow界面进行查看任务,并且打开任务列表。

import airflow
from airflow import DAG
from airflow.operators.hive_operator import HiveOperator
from airflow.operators.bash_operator import BashOperator
from airflow.models import Variable
import pendulum
from datetime import timedelta, datetime
from airflow.utils import timezone
from airflow.models import Variable

# 设置本地时区 1或2
yesterday = datetime.combine(datetime.now() - timedelta(2),
                                  datetime.min.time())
                    

# 设置DAG基本参数
default_args = {
    'owner': 'hadoop',
    'depends_on_past': False,
    'start_date': yesterday,
    'email': ['','',''],
    'email_on_failure': True,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=5),        #失败或者超时之后,延迟多长时间重试
    'queue': '机器名'    
}

dag_name = DAG(
    'name2',
    default_args=default_args,
    description='chinese name3',
    schedule_interval = '00 00 * * *',
    catchup=False)

ods_name4= BashOperator(
    task_id='name5',
    bash_command="""/data/spark-job/**/bin/ *** --startDate {{ ds }} --isOnline true""",
    dag =dag_name
)

 

有个问题是任务之间的依赖:使用set_upstream.     a1.set_upstream(a2) 说明a1依赖与a2

这是一个文件夹里的依赖

最近会去解决,不同文件夹之间的任务依赖。

Apache Airflow款开源的工作流管理平台,它允许用户通过编写 Python 脚本来定义复杂的任务调度流程。Airflow 使用 DAG(有向无环图,Directed Acyclic Graph)来表示任务之间的依赖关系,并支持分布式执行、定时触发等功能。 以下是关于 Airflow 的基本使用说明: ### 1. 核心概念 - **DAG**: 工作流的核心部分,由节点组成,每个节点代表任务 (Task);边则描述了它们的顺序和依赖关系。 - **Operator**: 表示具体的任务操作符,默认提供了些常见的 Operator 类型如 BashOperator 和 EmailOperator 等。 - **Scheduler**: 它负责解析 dag 文件夹内的所有 .py 文件并按定频率检查是否需要运行某些已配置好的 DagInstance 实例化对象。 ### 2. 基本安装步骤 首先你需要确保系统环境满足条件之后按照官方文档指南完成部署过程: ```bash pip install apache-airflow airflow db init # 初始化数据库 export AIRFLOW__CORE__EXECUTOR=SequentialExecutor # 设置 Executor 模式 ``` 然后启动 Web Server 及 Scheduler 进程即可开始构建属于你的第个 Pipeline! #### 示例代码片段展示如何创建简单的 ETL 流程: ```python from datetime import timedelta from airflow import DAG from airflow.utils.dates import days_ago from airflow.operators.bash_operator import BashOperator default_args = { 'owner': 'airflow', } dag = DAG( 'tutorial', default_args=default_args, description='A simple tutorial DAG', schedule_interval=timedelta(days=1), ) # t1, t2 and t3 are examples of tasks created by instantiating operators t1 = BashOperator( task_id='print_date', bash_command='date', dag=dag, ) ... ``` 以上仅是个基础入门教程的例子,在实际项目应用当中我们还应该考虑更多方面包括但不限于错误处理机制等等因素进去综合考量设计合理架构方案出来满足业务需求的同时保证系统的稳定性可靠性等重要指标达到预期目标值范围内才行哦~
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值