Košík je prázdný

Apache Airflow je open-source platforma pro plánování a řízení komplexních pracovních postupů a datových pipeline. Díky své flexibilitě a rozšiřitelnosti se stala populární volbou pro data inženýry a vývojáře v různých odvětvích. V tomto článku se podíváme na to, jak nastavit a používat Apache Airflow na systému CentOS, což je distribuce Linuxu známá svou stabilitou a bezpečností.

Předpoklady

Před instalací Apache Airflow se ujistěte, že váš systém CentOS splňuje následující požadavky:

  • CentOS 7 nebo novější
  • Python 3.6 nebo vyšší
  • Pip, správce balíčků pro Python

Instalace Apache Airflow

  1. Aktualizace systému: Nejprve aktualizujte svůj systém pomocí příkazu sudo yum update pro zajištění, že máte nejnovější verze všech balíčků.

  2. Instalace Pythonu a Pip: Pokud ještě nemáte nainstalovaný Python 3, můžete ho nainstalovat pomocí příkazu sudo yum install python3. Pip by měl být nainstalován společně s Pythonem.

  3. Vytvoření virtuálního prostředí: Pro izolaci závislostí Airflow od ostatních Python aplikací je doporučeno vytvořit virtuální prostředí. To lze udělat pomocí příkazů:

    python3 -m venv airflow_venv
    source airflow_venv/bin/activate
    
  4. Instalace Apache Airflow: S aktivním virtuálním prostředím nainstalujte Airflow pomocí pip. Pro základní instalaci použijte:

    pip install apache-airflow
    

Pokud potřebujete další funkce, jako je podpora pro různé databáze nebo integrace, můžete přidat extra balíčky podle potřeby.

 

 

Konfigurace Airflow

  1. Inicializace databáze: Airflow používá databázi pro sledování stavu úloh a pracovních postupů. Pro inicializaci databáze použijte:

    airflow db init
    
  2. Vytvoření uživatele: Pro přístup k webovému rozhraní Airflow je potřeba vytvořit uživatelský účet:

    airflow users create \
        --username admin \
        --firstname FIRST_NAME \
        --lastname LAST_NAME \
        --role Admin \
        --email Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
    
  3. Konfigurační soubor: Airflow umožňuje rozsáhlou konfiguraci prostřednictvím souboru airflow.cfg. Tento soubor najdete ve složce s instalací Airflow a můžete ho upravit podle svých potřeb.

 

Spuštění Airflow

  1. Webové rozhraní: Webové rozhraní Airflow spustíte pomocí:

    airflow webserver -p 8080
    

    Po spuštění můžete přistupovat k webovému rozhraní Airflow na http://localhost:8080.

  2. Plánovač: Pro spuštění plánovače, který pravidelně kontroluje definice pracovních postupů a spouští úlohy podle plánu, použijte:

    airflow scheduler
    

Vytváření a správa pracovních postupů a datových pipeline

Pro vytvoření pracovního postupu v Apache Airflow, budete potřebovat definovat DAG (Directed Acyclic Graph) - směřovaný acyklický graf, který reprezentuje všechny úlohy a jejich vzájemné závislosti. Následují základní kroky pro vytvoření jednoduchého DAG:

  1. Vytvoření souboru DAG: Vytvořte soubor Python ve složce dags ve vaší Airflow instalaci. Například my_first_dag.py.

  2. Definice DAG: V souboru definujte DAG pomocí konstrukce jako je níže. Nahraďte 'my_first_dag' a další parametry podle vašich potřeb:

    from datetime import timedelta
    from airflow import DAG
    from airflow.operators.dummy_operator import DummyOperator
    from airflow.utils.dates import days_ago
    
    default_args = {
        'owner': 'airflow',
        'depends_on_past': False,
        'email': [Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.'],
        'email_on_failure': False,
        'email_on_retry': False,
        'retries': 1,
        'retry_delay': timedelta(minutes=5),
    }
    
    dag = DAG(
        'my_first_dag',
        default_args=default_args,
        description='A simple tutorial DAG',
        schedule_interval=timedelta(days=1),
        start_date=days_ago(2),
        tags=['example'],
    )
    
    start = DummyOperator(
        task_id='start',
        dag=dag,
    )
    
    end = DummyOperator(
        task_id='end',
        dag=dag,
    )
    
    start >> end
    

 

Tento příklad vytvoří DAG s názvem my_first_dag, který má dvě úlohy: start a end, kde end následuje po start. Úlohy jsou zde definovány pomocí DummyOperator, což je základní operátor, který nevykonává žádnou akci a slouží pro demonstraci.

Správa a monitoring

Správa a monitoring jsou klíčové aspekty při provozování Apache Airflow. Webové rozhraní poskytuje podrobný přehled o stavu DAGů, úlohách, jejich spuštění, logy a mnoho dalšího. Můžete zde také manuálně spustit DAG nebo jednotlivé úlohy, zastavit běžící procesy nebo testovat konkrétní části pracovních postupů.

Zabezpečení

Zabezpečení by mělo být zváženo při nasazování Airflow v produkčním prostředí. Airflow nabízí několik mechanismů pro zabezpečení, včetně autentizace uživatelů, šifrování citlivých informací a nastavení oprávnění na úrovni DAG. Doporučuje se prozkoumat dokumentaci Airflow a implementovat vhodná zabezpečovací opatření pro vaše potřeby.

 

Apache Airflow je mocný nástroj pro orchestraci komplexních pracovních postupů a datových pipeline. Jeho flexibilita a široká škála integrací umožňují efektivní automatizaci a monitorování procesů v různých vývojových a produkčních prostředích. Při správné konfiguraci a používání na systému CentOS může Airflow poskytnout robustní a spolehlivé řešení pro správu vašich datových úloh.