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
-
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ů.
-
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.
-
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
-
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
-
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
-
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.
-
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
-
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
.
-
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:
-
Vytvoření souboru DAG: Vytvořte soubor Python ve složce dags
ve vaší Airflow instalaci. Například my_first_dag.py
.
-
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.