Cloud Composer 1 | Cloud Composer 2
Halaman ini menjelaskan data apa saja yang disimpan Cloud Composer untuk lingkungan Anda di Cloud Storage.
Saat Anda membuat lingkungan, Cloud Composer membuat bucket Cloud Storage dan mengaitkan bucket tersebut dengan lingkungan Anda. Nama bucket didasarkan pada region lingkungan, nama, dan ID acak seperti us-central1-b1-6efannnn-bucket
.
Cloud Composer mengharapkan kode sumber untuk alur kerja Anda (DAG) dan dependensinya di folder tertentu di Cloud Storage, serta menggunakan Cloud Storage FUSE untuk memetakan folder ke komponen Airflow di lingkungan Cloud Composer Anda.
Folder di bucket Cloud Storage
Folder | Jalur penyimpanan | Direktori yang dipetakan | Deskripsi |
---|---|---|---|
DAG | gs://bucket-name/dags |
/home/airflow/gcs/dags |
Menyimpan DAG untuk lingkungan Anda. Hanya DAG dalam folder ini yang dijadwalkan untuk lingkungan Anda. |
Plugin | gs://bucket-name/plugins |
/home/airflow/gcs/plugins |
Menyimpan plugin kustom Anda, seperti operator, hook, sensor, atau antarmuka Airflow internal kustom. |
Data | gs://bucket-name/data |
/home/airflow/gcs/data |
Menyimpan data yang dihasilkan dan digunakan oleh tugas. Folder ini dipasang pada semua worker node. |
Log | gs://bucket-name/logs |
Menyimpan log Airflow untuk tugas. Log juga tersedia di Airflow web interface dan di Logs Tab pada UI Cloud Composer. |
Pertimbangan kapasitas
Data dari folder dags/
, plugins/
, dan data/
disinkronkan ke penjadwal dan pekerja Airflow.
Di Airflow 2, konten folder
plugins/
juga disinkronkan ke server web Airflow.Di Airflow 1, folder
dags/
danplugins/
konten disinkronkan ke server web Airflow hanya jika Serialisasi DAG dinonaktifkan. Jika tidak, sinkronisasi tidak akan dilakukan.
Makin banyak data yang dimasukkan ke dalamnya, makin banyak folder yang digunakan
dalam penyimpanan lokal komponen Airflow.
Menyimpan terlalu banyak data di dags/
dan plugins/
dapat mengganggu operasi
dan menyebabkan masalah seperti:
pekerja atau penjadwal kehabisan penyimpanan lokal dan dikeluarkan karena ruang pada {i>disk<i} lokal komponen tidak cukup
Menyinkronkan file dari folder
dags/
danplugins/
ke pekerja dan penjadwal memerlukan waktu lama.Menyinkronkan file dari folder
dags/
danplugins/
ke pekerja dan penjadwal menjadi tidak mungkin dilakukan. Misalnya, Anda menyimpan file 2 GB di folderdags/
, tetapi disk lokal komponen Anda hanya dapat menampung 1 GB. Selama sinkronisasi, komponen Anda kehabisan penyimpanan lokal dan sinkronisasi tidak dapat diselesaikan.
DAG dan plugin
Untuk menghindari kegagalan alur kerja, simpan DAG, plugin,
dan modul Python di folder dags/
atau plugins/
,
meskipun modul Python Anda tidak berisi DAG atau plugin.
Misalnya, Anda menggunakan DataFlowPythonOperator
yang
mereferensikan pipeline dataflow py_file
. py_file
tersebut
tidak berisi DAG atau plugin, tetapi Anda tetap harus
menyimpannya di folder dags/
atau plugins/
.
Data
Ada beberapa skenario saat file tertentu dari folder data/
disinkronkan ke komponen Airflow tertentu.
Misalnya, saat Cloud Composer mencoba membaca file tertentu untuk pertama kalinya, selama:
Penguraian DAG Saat file dibaca untuk pertama kalinya selama penguraian DAG, Cloud Composer akan menyinkronkannya ke penjadwal yang mengurai DAG.
Eksekusi DAG Saat file dibaca untuk pertama kalinya selama eksekusi DAG, Cloud Composer akan menyinkronkannya ke pekerja yang menjalankan eksekusi.
Komponen Airflow memiliki penyimpanan lokal terbatas, jadi sebaiknya hapus file yang didownload untuk mengosongkan ruang disk di komponen Anda. Perhatikan bahwa penggunaan penyimpanan lokal juga dapat meningkat sementara jika Anda memiliki tugas serentak yang mendownload file yang sama ke satu pekerja Airflow.
Log
Folder logs/
disinkronkan dari pekerja Airflow ke bucket menggunakan Cloud Storage API.
Kuota Cloud Storage API dihitung berdasarkan jumlah data yang dipindahkan, sehingga jumlah tugas Airflow yang dijalankan sistem Anda dapat meningkatkan penggunaan Cloud Storage API: semakin banyak tugas yang dijalankan, semakin besar file log Anda.
Folder server web, dags/
, plugins/
, dan data/
Airflow 2 langsung menggunakan serialisasi DAG. Folder
plugins/
otomatis disinkronkan ke Webserver sehingga plugin dapat dimuat oleh UI Airflow. Anda tidak dapat menonaktifkan serialisasi DAG di Airflow 2.Di Airflow 1, serialisasi DAG didukung dan diaktifkan secara default di Cloud Composer.
- Saat serialisasi DAG diaktifkan, file dari folder
dags/
danplugins/
tidak akan disinkronkan ke Webserver. - Saat serialisasi DAG dinonaktifkan, file dari
dags/
danplugins/
akan disinkronkan ke Webserver.
- Saat serialisasi DAG diaktifkan, file dari folder
Sinkronisasi data
Saat Anda memodifikasi DAG atau plugin di bucket Cloud Storage, data akan disinkronkan di semua node dalam cluster.
Cloud Composer menyinkronkan folder dags/
dan plugins/
secara searah dengan menyalin secara lokal. Sinkronisasi searah berarti bahwa perubahan
lokal dalam folder ini akan ditimpa.
Folder data/
dan logs/
disinkronkan secara dua arah menggunakan Cloud Storage FUSE.
Perbedaan antara Cloud Composer 1 dan Cloud Composer 2
Cloud Composer 1 dan Cloud Composer 2 mengalokasikan jumlah CPU dan memori yang berbeda ke komponen yang melakukan sinkronisasi data.
Bergantung pada konfigurasi Anda, kecepatan sinkronisasi konten untuk folder dags/
, plugins/
, dan data/
antara komponen bucket Cloud Storage dan Airflow mungkin berbeda jika Anda membandingkan Cloud Composer 1 dan Cloud Composer 2.