02.01.2024

0

Like

21

Views

Linux Üzerinde Apache Airflow Kurulumu

Bugün yazımda Google Cloud üzerinde oluşturmuş olduğumuz Linux tabanlı sanal makineye Docker ile Apache Airflow kurulumunu göstereceğim. Öncelikle “Apache Airflow nedir?” sorusunu cevaplandıralım. Apache Airflow, şirketlerin iş akışlarının giderek karmaşık bir hal alması sebebiyle ortaya çıkan, toplu iş akışlarını geliştirmek, planlamak ve izlemek için kullanılan açık kaynaklı bir araçtır.

Apache Airflow Faydaları

  • Scalable: İş yüküne göre scalable özelliği vardır.
  • Dynamic: Python dilinde tanımlanmış olduğu için python dili kullanılarak data pipeline’lar oluşturulur.
  • Extensible: Airflow framework, teknolojilere bağlanmak için operatörleri kullanır. Airflow komponentleri, kullanıcı ihtiyaçlarına göre genişletilebilir.
  • User-Interface: Kullanışlı bir UI’a sahiptir. Oluşturulan task’lar, data pipeline’larda oluşan hatalar, bu hataların hangi operatörlerde oluştuğu gibi işlemler kolayca anlaşılmaktadır.

Airflow Mimarisi

  • Executor: Executor, Scheduler komponentine bağlıdır. Scheduler içindeki her bir task’ın nasıl çalışması gerektiğini tanımlar. Apache Airflow için tanımlı birden fazla executor bulunmaktadır. En yaygın olanları aşağıda listelenmiştir.
  • Web Server: DAG’ların, task’ların durumunu incelemek, manuel olarak task’ları tetiklemek için kullanılan, kullanıcı arayüzü sunan bir web sunucusudur.
  • Metadata Database: Scheduler, executor ve webserver komponentlerinin durumunun depolandığı veri tabanıdır.
  • Workers: Workers, ilgili task’ı execute eden process olarak nitelendirilebilir.
  • Scheduler: İşleri programlar ve görevleri düzenler. Hangi görevlerin, ne zaman ve nerede çalıştırılması gerektiğine karar vermek için DAG nesnesini kullanır.

Airflow Temel Bileşenleri

  • DAGs: İş akışının temel bileşenidir. İçerisinde birden fazla task ve operatör içerir.
  • Task: DAG içindeki her bir iş birimine verilen isimdir.
  • Operators: İş akışındaki her bir task, bir operatör tarafından tanımlanır. Belirli bir görevi yerine getirmesi için yazılmış birden çok operatör vardır. Örnek olarak; PythonOperator, BashOperator ve OracleOperator verilebilir.

Sanal Makineye Docker Kurulumu

Airflow’dan bahsettiğimize göre sanal makinemize nasıl kuracağımızdan bahsedelim. Öncelikle sanal makinemize Docker yüklüyoruz.

  1. İşletim Sistemini Güncelleme

sudo apt-get update

2Yeni Bir Depo Protokolü Oluşturma

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

3. Komutu Curl ile İçeri Aktarma

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

4. Yüklemeyi Tamamlama

sudo apt-get update

sudo apt-get install docker-ce

5. Kurulumu Doğrulama

sudo systemctl status docker

Sanal makinemize Docker’ı başarılı bir şekilde kurduk. Şimdi Docker ile Airflow’u ayağa kaldıralım.

Docker ile Airflow Ayağa Kaldırma

Öncelikle Airflow için hazırlanan docker-compose.yaml dosyasına ihtiyacımız var. Bunun için terminalde aşağıdaki komutu yazıyoruz.

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.8.0/docker-compose.yaml'

docker-compose dosyamızda Airflow’un bizim için belirlediği bir id vermemiz ve Airflow’un ihtiyaç duyduğu klasörleri oluşturmamız gerekiyor. Bu id’yi ve klasörleri oluşturmak için aşağıdaki komutu giriyoruz.

mkdir -p ./dags ./logs ./plugins ./config

echo -e "AIRLOW_UID=$(id -u)" > .env

Sonrasında Airflow’un Linux ve MacOs kullanıcılarının komutları daha basit bir komutla çalıştırmanıza olanak tanıyan isteğe bağlı komut dosyalarını indirebilirsiniz.

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.8.0/airflow.sh'

chmod +x airflow.sh

./airflow.sh info

Daha öncesinde yapmış olduğunuz bir projeyi Airflow’a aktaracaksanız ve requirements.txt dosyanız varsa Dockerfile dosyası oluşturup bu şekilde Airflow’u ayağa kaldırmanız daha isabetli olacaktır.

Örnek bir Dockerfile oluşturmak için aşağıdaki komutları uygulayabilirsiniz.

vim Dockerfile

Düzenlemeleri yapıp çıkmak için ESC + :wq yazıyoruz.

Dockerfile’yi de oluşturduğumuza göre yapmamız gereken bir şey daha kalıyor. Daha öncesinde indirmiş olduğumuz docker-compose.yaml dosyasına gidiyoruz ve aşağıdaki değişliği yapıyoruz.

docker-compose.yaml dosyasını da düzenledikten sonra aşağıdaki komutla Airflow’u ayağa kaldırıyoruz.

docker compose up --build -d

permission denied hatası alırsanız aşağıdaki komutları kullanın.

sudo usermod -aG docker $USER

sudo systemctl stop docker

sudo systemctl start docker

docker compose up --build -d

Dockerfile ile birlikte Airflow’u başarıyla ayağa kaldırdık. Şimdi de sanal makinemizin External IP’sinden Airflow UI’ye giriş yapıcaz.

Karşımıza aşağıdaki gibi bir ekran çıkacak. Username: airflow Password: airflow

Başarıyla Airflow’a ayağa kaldırdık ve Airflow UI’ye giriş yaptık.

Bana aşağıdaki bağlantılardan ulaşabilirsiniz.

Linkedin

Github

Comments

You need to log in to be able to comment!

Cihan Erdoğan

Location

İzmir, TR

Education

Psikoloji - Adnan Menderes Üniversitesi

© 2021 Patika Dev

facebook
twitter
instagram
youtube
linkedin