2017-08-24 21 views
10

चला रहे हैं मैं एयरफ्लो v1.8.1 का उपयोग कर रहा हूं और कुबेरनेट & डॉकर पर सभी घटकों (कार्यकर्ता, वेब, फूल, शेड्यूलर) चला रहा हूं। मैं Redis के साथ अजवाइन निर्वाहक का उपयोग करें और अपने कार्यों की तरह दिखता है:एयरफ्लो कार्य "कतारबद्ध" स्थिति पर फंस जाते हैं और कभी भी

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

कई downstreams तो start कार्य है। नीचे के रूप में और मैं सेटअप संगामिति संबंधित विन्यास:

parallelism = 3 
dag_concurrency = 3 
max_active_runs = 1 

तब (यकीन नहीं करता है, तो यह कभी नहीं एक निर्धारित कार्य पर होता है) जब मैं इस DAG मैन्युअल रूप से चलाना, कुछ downstreams निष्पादित हो, लेकिन दूसरों पर अटक स्थिति "पंक्तिबद्ध" ।

यदि मैं व्यवस्थापक UI से कार्य साफ़ करता हूं, तो इसे निष्पादित किया जाता है। कोई कार्यकर्ता लॉग नहीं है (कुछ पहले डाउनस्ट्रीम को प्रोसेस करने के बाद, यह किसी भी लॉग आउटपुट नहीं करता है)।

वेब सर्वर के लॉग (यकीन नहीं worker exiting संबंधित है)

/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) 

वहाँ अनुसूचक पर कोई त्रुटि लॉग, भी है। और जब भी मैं कोशिश करता हूं तो कई कार्य अटक जाते हैं।

क्योंकि मैं डॉकर का भी उपयोग करता हूं, मुझे आश्चर्य है कि यह संबंधित है: https://github.com/puckel/docker-airflow/issues/94 लेकिन अभी तक, कोई सुराग नहीं है।

क्या किसी को भी इसी तरह के मुद्दे का सामना करना पड़ा है या मुझे कुछ पता है कि मैं इस मुद्दे के लिए क्या जांच कर सकता हूं ...?

+0

हाय @ नोरियो, हमारे पास समान समस्या है जो 'कतार' में कार्य करता है लेकिन शेड्यूलर उनमें से कुछ को भूल जाता है। जब मैं फिर से 'एयरफ्लो शेड्यूलर' का उपयोग करता हूं, तो उन्हें उठाया जाता है। मैं 1.8.1, कुबेरनेट और डॉकर का भी उपयोग कर रहा हूं, लेकिन स्थानीय एक्सक्लूसर के साथ, यहां एक ही समस्या है। – Chengzhi

+0

@ चेंग्ज़ी जानकारी के लिए धन्यवाद। मैं इस खोल का उपयोग https://github.com/apache/incubator-airflow/blob/ff45d8f2218a8da9328161aa66d004c3db3b367e/airflow/bin/airflow_scheduler_autorestart का उपयोग करता हूं।sh8 के बैक ऑफ पर भरोसा किए बिना स्वचालित रूप से शेड्यूलर को पुनरारंभ करने के लिए sh, इसलिए मेरे मामले शेड्यूलर को समय-समय पर फिर से तैयार किया जाना चाहिए, लेकिन कुछ कार्यों को हमेशा के लिए नहीं चुनना ... बहुत अजीब है। –

+0

सुपर, साझा करने के लिए धन्यवाद, बहुत तारित, अगर मुझे कुछ मिला तो मैं आपको लूप में रखूंगा, लेकिन ऐसा लगता है कि यह अब समाधान है। – Chengzhi

उत्तर

3

अटकने वाले कार्य सबसे अधिक संभावना है, एक बग। इस समय (< = 1.9.0alpha1) ऐसा तब हो सकता है जब कोई कार्य (दूरस्थ) कार्यकर्ता पर भी शुरू नहीं हो सकता है। यह उदाहरण के लिए एक अधिभारित कार्यकर्ता या अनुपलब्ध निर्भरताओं के मामले में होता है।

यह patch उस समस्या को हल करना चाहिए।

यह जांचने योग्य है कि आपके कार्यों को एक चलने वाला राज्य क्यों नहीं मिलता है। खुद को इस राज्य में स्थापित करना सबसे पहला काम है। आम तौर पर कार्यकर्ता इसे निष्पादित करना शुरू करने से पहले लॉग करता है और यह रिपोर्ट और त्रुटियां भी करता है। आपको कार्य लॉग में इसकी प्रविष्टियां ढूंढने में सक्षम होना चाहिए।

संपादित करें: मूल प्रश्न पर टिप्पणियों में उल्लेख किया गया था कि यदि एयरफ्लो का एक उदाहरण कार्य चलाने में सक्षम नहीं है, तो यह आवश्यक स्थानों पर नहीं लिख सकता है। यह आगे बढ़ने में असमर्थ बनाता है और कार्य अटक जाएंगे। पैच शेड्यूलर से कार्य को विफल करके इसे ठीक करता है।

+0

हम इस समस्या को 1.9.0 कार्यों के साथ देख रहे हैं लेकिन कभी भी दौड़ने के लिए नहीं जाते यूआई से मैन्युअल रूप से किए जाने तक राज्य – l0n3r4ng3r

2

हमारे पास एक समाधान है और इसे 1.9 आधिकारिक बनने से पहले यहां साझा करना चाहते हैं। बोल्के डी ब्रुइन के लिए धन्यवाद 1.9 पर अपडेट। 1.9 से पहले मेरी स्थिति में, वर्तमान में हम 1.8.1 का उपयोग कर रहे हैं queue state में कार्य को साफ़ करने के लिए एक और डीएजी चलाना है यदि यह 30 मिनट से अधिक समय तक रहता है।

संबंधित मुद्दे