2016-07-05 36 views
9

स्थानीय निष्पादक कार्यों को शेड्यूल करते समय नई प्रक्रियाओं को जन्म देता है। क्या यह प्रक्रियाओं की संख्या की सीमा है। मुझे इसे बदलने की जरूरत है। मुझे यह जानने की ज़रूरत है कि airflow.cfg में शेड्यूलर के "max_threads" और "समांतरता" के बीच क्या अंतर है?एयरफ्लो समांतरता

उत्तर

6

शेड्यूलर का max_threads शेड्यूलर ओवर समांतर करने के लिए प्रक्रियाओं की संख्या है। max_threads सीपीयू गिनती से अधिक नहीं हो सकता है। LocalExecutor's parallelism स्थानीय एक्सेलसॉरर को समवर्ती कार्यों की संख्या है। शेड्यूलर और लोकलएक्सएटर दोनों समानांतरता के लिए पाइथन की मल्टीप्रोसेसिंग लाइब्रेरी का उपयोग करते हैं।

+1

उत्कृष्ट, धन्यवाद! – rjurney

15

समांतरता: एक बहुत ही वर्णनात्मक नाम नहीं है। वर्णन में कहा गया है कि यह एयरफ्लो इंस्टॉलेशन के लिए अधिकतम कार्य उदाहरण सेट करता है, जो थोड़ा अस्पष्ट है - अगर मेरे पास एयरफ़्लो श्रमिक चलाने वाले दो होस्ट हैं, तो मेरे पास दो होस्टों पर एयरफ्लो स्थापित होगा, इसलिए यह दो इंस्टॉलेशन होना चाहिए, लेकिन संदर्भ पर आधारित होना चाहिए 'प्रति स्थापना' का अर्थ है 'प्रति एयरफ्लो राज्य डेटाबेस'। मैं इस max_active_tasks नाम होगा।

dag_concurrency: टिप्पणी के आधार पर नाम के बावजूद यह वास्तव में कार्य सहमति है, और यह प्रति कार्यकर्ता है। मैं इस max_active_tasks_for_worker का नाम दूंगा (per_worker सुझाव देगा कि यह श्रमिकों के लिए एक वैश्विक सेटिंग है, लेकिन मुझे लगता है कि आप इसके लिए अलग-अलग मूल्यों के साथ श्रमिकों को रख सकते हैं)।

max_active_runs_per_dag: यह एक थोड़े ठीक है, लेकिन क्योंकि यह मिलान DAG kwarg के लिए सिर्फ एक डिफ़ॉल्ट मान प्रतीत हो रहा है, यह है कि नाम में प्रतिबिंबित करने के लिए अच्छा हो सकता है, default_max_active_runs_for_dags की तरह कुछ तो चलो पर चलते डीएजी क्वार्ग:

समवर्ती: फिर, इस तरह का एक सामान्य नाम होने के साथ-साथ इस तथ्य के साथ मिलकर कि किसी अन्य जगह के लिए समेकन का उपयोग इस सुंदर भ्रमित करने में किया जाता है। मैं यह max_active_tasks कॉल करेंगे।

max_active_runs: यह मेरे लिए ठीक लगता है।

स्रोत: https://issues.apache.org/jira/browse/AIRFLOW-57


max_threads उपयोगकर्ता CPU उपयोग पर कुछ नियंत्रण देता है। यह शेड्यूलर समांतरता निर्दिष्ट करता है।

+0

क्या प्रति कार्य समानांतरता निर्दिष्ट करने का कोई तरीका है? मुझे लगता है कि जब मैं किसी एसएफटीपी से डेटा डाउनलोड करने की तरह कुछ बैकफिल कर रहा हूं, तो मैं समांतरता 4 या 5 होना चाहता हूं। हालांकि, जब मैं डेटा लोड करता हूं, तो मैं चाहता हूं कि यह केवल 1 हो (यदि यह एक से अधिक है, ऑर्डर डेटा इसमें लोड नहीं किया गया है इसकी गारंटी नहीं है। अभी मेरे पास सीरियल कुंजी हैं जो क्रम से बाहर हैं क्योंकि मैं समांतरता को 1 तक वापस करना भूल गया जो थोड़ा परेशान है) – trench

+0

एक एयरफ्लो कार्यकर्ता एक अलग मशीन पर अलग-अलग एयरफ्लो के बिना चलाए जा सकता है डेटाबेस उदाहरण। मैं अपने एयरफ्लो श्रमिकों को डॉकर में चलाता हूं, मैं उन्हें एक कतार यूआरएल और एक डीबी यूआरएल देता हूं और यह बहुत अच्छा काम करता है! – Sethish

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