2017-08-24 42 views
10

çalıştırıyorum. Airflow v1.8.1 kullanıyorum ve tüm bileşenleri (çalışan, web, çiçek, zamanlayıcı) kubernetes & Docker'da çalıştırın. Ben REDIS ile Kereviz Executor kullanmak ve benim görevler gibi görünüyor şunlardır:Airflow görevleri "sıraya alınmış" durumdayken takılıyor ve asla

(start) -> (do_work_for_product1) 
    ├ -> (do_work_for_product2) 
    ├ -> (do_work_for_product3) 
    ├ … 

Yani start görev vardır çoklu mansaplarında. aşağıda Ve kurulum eşzamanlılık ilgili yapılandırma: Sonra

parallelism = 3 
dag_concurrency = 3 
max_active_runs = 1 

el bu DAG çalıştırdığınızda (o asla bir zamanlanmış görev olur emin değilim), bazı akış aşağı bölümünde idam, ama diğerleri takılıp durumu "sıraya" .

Görevi Yönetici Arayüzünden temizlerseniz, yürütülür. Çalışan günlüğü yok (bazı ilk alt akışları işledikten sonra, herhangi bir günlük çıkmıyor).

Web sunucusunun log

/usr/local/lib/python2.7/dist-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead. 
    .format(x=modname), ExtDeprecationWarning 
[2017-08-24 04:20:56,496] [51] {models.py:168} INFO - Filling up the DagBag from /usr/local/airflow_dags 
[2017-08-24 04:20:57 +0000] [27] [INFO] Handling signal: ttou 
[2017-08-24 04:20:57 +0000] [37] [INFO] Worker exiting (pid: 37) 

de zamanlayıcı üzerinde hiçbir hata günlüğü yok (emin değilim worker exiting ilişkilidir). Ve bunu denediğimde bir dizi görev değişiyor.

Ayrıca Docker kullanıyorum çünkü bu ilgili olup olmadığını merak ediyorum: https://github.com/puckel/docker-airflow/issues/94 Ama şimdiye kadar, hiçbir ipucu.

Benzer bir sorunla karşı karşıya olan veya bu sorun için neleri araştırabileceğime dair bir fikrim var mı?

+0

Merhaba @Norio, sıradaki görevlerin benzer bir sorunu yaşıyoruz ancak zamanlayıcılar bazılarını unutmuş görünüyor. Hava akışı zamanlayıcısını tekrar kullandığımda aldılar. Ayrıca 1.8.1, kubernetes ve Docker kullanıyorum, ancak LocalExecutor ile aynı sorun burada. – Chengzhi

+0

@Chengzhi Bilgi için teşekkür ederiz. Bu kabuğu https://github.com/apache/incubator-airflow/blob/ff45d8f2218a8da9328161aa66d004c3db3b367e/airflow/bin/airflow_scheduler_autorestart adresinden kullanıyorum.otomatik olarak k8s 'e geri güvenmeden zamanlayıcıyı yeniden başlatmak için sh, bu yüzden benim durum çizelgesinde periyodik olarak yeniden yeniden oluşturulmalı ama bazı görevleri sonsuza dek almamalı ... çok garip. –

+0

süper, paylaştığınız için teşekkürler, çok kablolu, bir şey bulursam size döngü içinde kalacağım, ama şu an için çözüm bu gibi görünüyor. – Chengzhi

cevap

3

Sıkışan görevler büyük olasılıkla bir hatadır. Şu anda (< = 1.9.0alpha1), bir görev (uzaktan) çalışanında bile başlayamadığında meydana gelebilir. Bu, örneğin aşırı çalışan bir işçi veya eksik bağımlılıklar durumunda olur. Bu sorunu gideren bu patch olmalıdır.

Görevlerinizin neden ÇALIŞMA durumu almadığını araştırmaya değer. Kendini bu duruma ayarlamak, bir görevin yaptığı ilk şeydir. Normalde çalışan, yürütmeye başlamadan önce günlüğe kaydedilir ve ayrıca raporlar ve hatalar da oluşturur. Bunun girdilerini, görevi günlüğünde bulabilmeniz gerekir.

düzenleme: Asıl soru hakkındaki yorumlarda belirtildiği gibi, hava akışının bir örneğini çalıştırılamaması durumunda, gerekli konumlara yazamadığı durum söz konusudur. Bu devam edemez ve görevler sıkışır. Yama, görevi zamanlayıcıdan çıkararak bu sorunu giderir.

+0

Bu sorunu 1.9.0 görevleri ile görüyoruz, sıraya alınıyor ancak asla çalışmaya devam etmiyoruz UI'den manuel olarak yapılmadıkça durum – l0n3r4ng3r

2

Bir çözümümüz var ve 1.9 resmi görevlendirilmeden önce burada paylaşmak istiyoruz. 1.9'da Bolke de Bruin güncellemeleri için teşekkürler. benim durumumda 1,9'dan önce, şu an 1.8.1 kullanıyoruz, bir başka DAG'ın görevini queue state'da temizlemek için 30 dakikadan fazla kalması gerekiyor.

İlgili konular