Apa itu Airflow?
Apache Airflow adalah pengelola alur kerja tingkat lanjut dan alat yang sangat diperlukan di gudang insinyur data modern.
Aliran udara memungkinkan Anda membuat alur kerja dalam bentuk grafik asiklik terarah (DAG) tugas. Berbagai utilitas baris perintah melakukan operasi kompleks di DAG. Antarmuka pengguna dengan mudah memvisualisasikan pipeline yang berjalan di lingkungan produksi, memantau kemajuan, dan memecahkan masalah sesuai kebutuhan.
Buat, rencanakan, dan kontrol alur kerja Anda secara terprogram. Ini menyediakan abstraksi fungsional dalam bentuk DAG idempoten (Grafik Acyclic Terarah). Fungsi sebagai layanan abstraksi untuk melakukan tugas pada interval tertentu.
Cluster dengan satu node Airflow
Dalam satu node Airflow cluster, semua komponen (pekerja, penjadwal, server web) diinstal pada satu node yang dikenal sebagai " node Master ". Untuk menskalakan cluster node tunggal Airflow
harus dikonfigurasi di LocalExecutor
. Pekerja mengambil (menarik) tugas dari antrian IPC (komunikasi antar-proses), ini berskala sangat baik selama sumber daya tersedia di simpul Master . Untuk menskalakan Aliran Udara di beberapa node, Anda harus mengaktifkan Celery Executor
.

Arsitektur node tunggal aliran udara
Kluster multinode aliran udara
Airflow . - , , , . , Airflow CeleryExecutor
.
Celery CeleryExecutor
Airflow. / Celery Redis RabbitMQ. RabbitMQ — . — . IPC, , RabbitMQ — . RabbitMQ / , Celery . .

Airflow
Celery:
Celery — , . , . Airflow . Airflow Airflow, .
Airflow Celery:
. CentOS 7 Linux.
- RabbitMQ
yum install epel-release yum install rabbitmq-server
- RabbitMQ Server
systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service
- - RabbitMQ
rabbitmq-plugins enable rabbitmq_management

rabbitmq — 15672
, - — admin/admin
.

-
pyamqp
RabbitMQ PostGreSQL
pip install pyamqp
amqp://
— , librabbitmq, , py-amqp
, .
pyamqp://
librabbitmq://
, , . pyamqp://
amqp
(http://github.com/celery/py-amqp)
PostGreSQL: psycopg2
Psycopg — PostgreSQL Python.
pip install psycopg2
- Airflow.
pip install 'apache-airflow[all]'
airflow
airflow version

Airflow v1.10.0, .
airflow initdb
, . Airflow .
- Celery
Celery .
pip install celery==4.3.0
Celery
celery --version 4.3.0 (rhubarb)
- airflow.cfg Celery Executor.
executor = CeleryExecutor sql_alchemy_conn = postgresql+psycopg2://airflow:airflow@{HOSTNAME}/airflow broker_url= pyamqp://guest:guest@{RabbitMQ-HOSTNAME}:5672/ celery_result_backend = db+postgresql://airflow:airflow@{HOSTNAME}/airflow dags_are_paused_at_creation = True load_examples = False
airflow.cfg
airflow airflow initdb
, airflow
.
- airflow
# default port is 8080 airflow webserver -p 8000
# start the scheduler airflow scheduler
airflow .
airflow worker
Setelah Anda selesai memulai berbagai layanan aliran udara, Anda dapat memeriksa antarmuka aliran udara yang fantastis dengan perintah:
http://<IP-ADDRESS/HOSTNAME>:8000
seperti yang kami tentukan port 8000 di perintah start layanan webserver kami, jika tidak, nomor port default adalah 8080.
Iya! Kami telah selesai membuat cluster dengan arsitektur multinode Airflow. :)