आउटगोइंग क्रोन: अगला शेड्यूलर क्या है? [बन्द है]


30

जब तक हम अपनी नौकरी की सभी समयबद्धन जरूरतों को संभालना याद रख सकते हैं, तब तक हम क्रोन का उपयोग कर रहे हैं। स्टोरेज क्लोन / स्नैपशॉट से लेकर डेटाबेस तक की दैनिक रिपोर्ट के मॉनिटरिंग चेक तक की रिपोर्ट से लेकर क्रोन के जरिए कुछ सौ सर्वरों तक सब कुछ निर्धारित है।

कमियां बहुत स्पष्ट हैं: नौकरियों का प्रबंधन करना मुश्किल है, निर्भरता बनाने के लिए कोई आसान तरीका नहीं है (विशेष रूप से विभिन्न सर्वरों में), और, ज़ाहिर है, यह अपरिहार्य है कि कोई व्यक्ति "अस्थायी रूप से" नौकरी छोड़ देता है लेकिन बाद में टिप्पणी को हटाने के लिए भूल जाता है।

हमने एक वाणिज्यिक पेशकश की कोशिश की, लेकिन अंत में इसे क्रोन से एक कदम के रूप में बहुत महंगा माना गया।

मुझे वहाँ से बाहर अन्य विकल्प दिखाई देते हैं, जैसे SLURM, Oracle Grid Engine, Torque / Maui, Quartz, DIET, Condor जो नौकरियों के साथ बड़े, अधिक सजातीय क्लस्टर वातावरण में दिखाई देते हैं जो किसी भी संख्या में समान नोड्स पर चलेंगे: ग्रिड कंप्यूटिंग और जैसे। हमारा वातावरण काफी मिश्रित है (विभिन्न लिनक्स, एआईएक्स और फ्रीबीएसडी), और हमें विभिन्न प्रकार के सिस्टमों पर निर्भरता बनाने की आवश्यकता है (उदाहरण के लिए लिनक्स बॉक्स पर एक नौकरी यह निर्धारित करने की आवश्यकता हो सकती है कि क्या एआईएक्स बॉक्स पर नौकरी चलनी चाहिए।)

क्या किसी के पास क्रॉन से अधिक केंद्र-प्रबंधित ऑफ़र में जाने का कोई अनुभव है? सॉफ़्टवेयर चुनने के लिए कोई सुझाव या क्या खुला स्रोत या वाणिज्यिक जाना बेहतर है?

जवाबों:


11

कोंडोर, OGE, और टॉर्क आप सभी को मिल सकता है, लेकिन केवल कोंडोर में DAGMan टूल के साथ अंतर्निहित निर्भरता प्रबंधन है । DAGMan आपको एक निर्देशित, एसाइक्लिक ग्राफ सेट करने देता है जो आपके कार्य प्रवाह का वर्णन करता है और प्रबंधक आपके वर्कफ़्लो में नौकरियों के माध्यम से जाने और प्रवाह में प्रत्येक चरण पर पास / असफल परिणामों का मूल्यांकन करने का ध्यान रखता है। कोंडोर अपेक्षाकृत प्लेटफ़ॉर्म अज्ञेयवादी है, जिसका अर्थ है कि DAGMan बहुत अधिक है, और निश्चित रूप से AIX पर एक चाइल्ड स्टेप चलाया जा सकता है, जब पैरेंट लिनक्स या विंडोज पर चलता है। DAGMan का इस बात से कोई संबंध नहीं है कि नौकरियां कहां चलती हैं, बस बाहर निकलने के कोड पास या विफल होते हैं।

सॉफ़्टवेयर चुनने के लिए कोई सुझाव या क्या खुला स्रोत या वाणिज्यिक जाना बेहतर है?

कुछ कैविटीज़ के साथ मुझे लगता है कि इस अंतरिक्ष में मुक्त समुदाय अच्छी तरह से देखने लायक हैं।

OGE अब एक अजीब जगह पर है। यह ओरेकल-निर्मित जीई वेरिएंट को चलाने के लिए स्वतंत्र नहीं है और ऑरेकल अब जीई एससीसी में वापस लिखने वाले कोड का योगदान नहीं दे रहा है, लेकिन कोड के कई कांटे मौजूद हैं जो मुक्त, खुले स्रोत परियोजनाओं के रूप में सैनिक की कोशिश कर रहे हैं। Univa ने विशेष रूप से चार्ज का नेतृत्व किया है , पूर्व-सूर्य जीई देवों को काम पर रखने के लिए एक खुले स्रोत पर काम करना जारी रखता है, स्वतंत्र रूप से उपलब्ध जीई संस्करण। ग्रिड इंजन में इसके लिए दो चीजें हैं: यह सेटअप करना आसान है, यह थ्रूपुट को धीमा करने वाली नौकरियों पर बहुत अधिक शेड्यूलिंग ओवरहेड लगाए बिना शॉर्ट रनिंग (<2 मिनट) की नौकरियों को संभाल सकता है। यह बड़ा नकारात्मक है विंडोज के लिए बहुत अच्छा समर्थन नहीं है। हममें से कुछ लोगों ने इसे कई साल पहले Cygwin पर चलाने के लिए पोर्ट करने के लिए कुछ प्रयास किए थे, लेकिन यह उतना मूल नहीं है जितना कि यह सुनिश्चित हो।

अब कोंडोर मेरे द्वारा बताई गई तीन तकनीकों का मेरा पसंदीदा है। कोंडोर के आसपास एक मजबूत समुदाय है और सॉफ्टवेयर बहुत परिपक्व है (> अब 20 साल पुराना)। देशी Windows और POSIX OS समर्थन का मतलब है कि यह सभी जगह बहुत अच्छी तरह से चलता है। उपर्युक्त DAGMan कोंडोर के साथ आने वाले कई बेहतरीन टुकड़ों में से एक है। इसे स्थापित करने के लिए एक स्पर्श जटिल हो सकता है, लेकिन एक बार यह ऊपर है और इसे चलाने के लिए ठोस है। यह काम करने के लिए एक अविश्वसनीय रूप से लचीली भाषा है <-> मशीन मिलान और अपने संसाधनों के लिए अपने उपयोग के नियमों का निर्माण। यह मशीनों पर डायनेमिक प्रोविजनिंग का भी समर्थन करता है, जिससे जॉब्स को यह चुनने में मदद मिलती है कि उन्हें कितनी मशीनों के संसाधनों की जरूरत है और फिर से उपलब्ध होने वाले अंतर को फिर से विज्ञापित करें। यह वैश्विक संसाधन काउंटरों का समर्थन करता है ताकि आप सॉफ्टवेयर लाइसेंस जैसी चीजों के खिलाफ विवश हो सकें। और निश्चित रूप से, इसमें DAGMan है, जो वर्कफ़्लो प्रबंधन के लिए एक अविश्वसनीय रूप से शक्तिशाली उपकरण है। कोंडोर के लिए नकारात्मक पक्ष यह है कि कम चलने वाली नौकरियों के लिए शेड्यूलिंग ओवरहेड बोझ हो सकता है। आप ऐसी नौकरियां चाहते हैं जो आदर्श रूप से 2 मिनट से अधिक समय तक चलती हैं, अन्यथा शेड्यूलिंग सिस्टम में नौकरी के समय का एक बड़ा हिस्सा बनना शुरू हो जाता है।

टॉर्क थोड़ा और आला है। मैं इसके बारे में कम जानता हूं कि मुझे डर है। यह कोंडोर की तुलना में ग्रिड इंजन की तुलना में अधिक है। वहाँ ऐड-ऑन का भुगतान किया जाता है जो @warren ने उल्लेख किया है कि बुनियादी, मुफ्त टोक़ का विस्तार कर सकता है।

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


जानकारी के लिए धन्यवाद। कोंडोर वास्तव में मशीनों के बड़े संग्रह की ओर लगता है जो किसी विशेष कार्य को चलाने में सक्षम हैं। मेरे पास समस्या यह है कि नौकरियों का एक समूह है जो बहुत विशिष्ट स्थानों में चलते हैं, लेकिन मुझे एक विशिष्ट क्रम में चलाने के लिए नौकरियों को एक साथ श्रृंखलाबद्ध करने की आवश्यकता है। क्या यह कुछ कोंडोर भी कर सकता है, या यह इस तरह से काम करने के लिए दर्दनाक होने वाला है?
कैकेमोक्स

1
कोंडोर आपकी स्थिति को संभाल सकता है। आप DAG से सभी प्रकार के कामों में बाधा डाल सकते हैं, इसलिए वे आपके पूल में बहुत विशिष्ट मशीनों या हार्डवेयर को लक्षित करते हैं।
इयान सी।

6

क्रोनोस बहुत आशाजनक दिखता है।

क्रोन के लिए क्रोनोस Airbnb का प्रतिस्थापन है। यह एक वितरित और दोष-सहिष्णु अनुसूचक है जो अपाचे मेसोस के शीर्ष पर चलता है। आप इसका उपयोग नौकरियों को ऑर्केस्ट्रेट करने के लिए कर सकते हैं। यह कस्टम मेसस निष्पादकों के साथ-साथ डिफ़ॉल्ट कमांड निष्पादक का समर्थन करता है। इस प्रकार, डिफ़ॉल्ट रूप से, क्रोनोस श (ज्यादातर सिस्टम बैश) स्क्रिप्ट को निष्पादित करता है। क्रोनोस का उपयोग Hadoop (incl। EMR) जैसी प्रणालियों के साथ बातचीत करने के लिए किया जा सकता है, भले ही मेसोस दास जिस पर निष्पादन होता है, उसमें Hadoop स्थापित नहीं है। शामिल आवरण लिपियों फ़ाइलों को स्थानांतरित करने और उन्हें पृष्ठभूमि में एक दूरस्थ मशीन पर निष्पादित करने और अतुल्यकालिक कॉलबैक का उपयोग करने की अनुमति देता है ताकि क्रोनोस को काम पूरा होने या विफलताओं को सूचित किया जा सके।

मैंने क्रोन रिप्लेसमेंट के रूप में जेनकिंस का उपयोग करते हुए बड़ी व्यक्तिगत सफलता भी हासिल की है। यह रिमोट सर्वर पर नौकरियों को अच्छी तरह से निष्पादित करता है। इस पर एक राइटअप है: http://www.22ideastreet.com/blog/2014/05/02/replace-local-cron-with-jenkins/


4

पिछले 4.5 वर्षों के लिए, मैंने एचपी के (नी ऑप्सवेयर) सर्वर ऑटोमेशन प्लेटफॉर्म और बाकी बिजनेस टेक्नोलॉजी ऑप्टिमाइज़ेशन सूट (नेटवर्क ऑटोमेशन, ऑपरेशन्स ऑर्केस्ट्रेशन आदि) के साथ काम किया है।

एक बड़े पर्याप्त वातावरण के लिए, SA के माध्यम से नौकरी प्रबंधन एक उच्च व्यवहार्य (और वांछनीय) उपकरण है। ऊ के साथ संयोजन के रूप में, परिवर्तन नियंत्रण प्रबंधन, टिकटिंग आदि के माध्यम से नौकरियों को नियंत्रित किया जा सकता है।

यहाँ नहीं तो मज़ा हिस्सा है: यह pricey (बहुत pricey) है। आप कुछ ऐसे ही प्रश्नों की जांच कर सकते हैं, जो मैंने कुछ समय पहले पूछे थे: FLOSS सर्वर प्रबंधन और ऑडिट टूल

मैं यह भी कहूंगा कि टोक़ / माउ / मोआब ( अनुकूली कम्प्यूटिंग से ) बहुत अच्छे हैं: मूल्य निर्धारण पर निश्चित नहीं हैं, लेकिन वे अत्यधिक लचीले उपकरण भी हैं।


अस्वीकरण - मैं एचपी बीटीओ और अनुकूली के एक साथी के लिए काम करता हूं


2

नोट समस्या पर एक पूरी तरह से अलग ले!

क्रॉन है पुराने और कुछ शब्दों में भद्दा।

यदि आप वास्तव में शेड्यूलिंग करने के नए तरीकों की तलाश कर रहे हैं, तो मैं एक संदेशवाहक मिडलवेयर के साथ कुछ घटना की कोशिश करूँगा। प्रत्येक सर्वर पर ग्राहकों के साथ RabbitMQ के बारे में सोचें।

इंटर होस्ट निर्भरता "अधिसूचना कतारों" द्वारा हल किया जा सकता है।

"रियल" समय आधारित घटनाएं थोड़ी पेचीदा होती हैं, यह वास्तव में क्रोन के लिए है (और कम से कम छोटे वातावरण के बारे में बहुत अच्छा है)। जहां विचार को पकड़ना मुश्किल हो जाता है, वहीं हिकअप को रोकना है। जैसे: हर रात 0100h पर एक स्नैपशॉट करते हैं। आप कुछ लोड स्पाइक या बहुत सारे असफल लॉगिन देख सकते हैं, इस क्षण में आपके पूरे बुनियादी ढांचे को नुकसान पहुंचा सकता है। यदि आपके पास एक कतार आधारित दृष्टिकोण है, तो आपको कम से कम कुछ विचलन मुफ्त में मिलेगा (हालांकि इसकी गारंटी नहीं है - जब तक कि कुछ तर्क लागू न हों)।

चारों ओर पाने की बात यह है कि वास्तविक समय आधारित नौकरियों के बिना आप चीजों पर भरोसा नहीं कर सकते हैं: हाँ मेरे बैकअप 0200h पर शुरू होंगे और अगर वे अभी भी 0400h पर कुछ गलत करते हैं। क्या करना आसान है सुनिश्चित करें कि कोई भी 2 कार्य जो एक ही समय में बाधित होते हैं। बस एक अवरुद्ध एजेंट बनाएं जो केवल एक समय में एक नौकरी का उपभोग करेगा।

प्रबंध भाग कुछ अच्छा वेब इंटरफ़ेस होगा जहां नौकरियों को ऑन-डिमांड जमा किया जा सकता है, या - अब यह "क्रोन" पर वापस मिल जाता है या आपके पसंदीदा कार्यान्वयन इसे जावा क्वार्ट्ज अनुसूचक सेकंड AFAIK पर एक ग्रैन्युलैरिटी है - के लिए समय आधारित भाग सिर्फ अच्छे पुराने क्रोन का उपयोग करें :)

कृपया मुझे ओटी होने के लिए न उकसाएं - यह एक कठिन अवधारणा है लेकिन चूँकि प्रश्न पैसे से इंकार नहीं करता है इसलिए कोई व्यक्ति खर्च करने के बजाय कुछ बनाकर घर के अंदर की आवश्यकताओं के समाधान के लिए पैसा खर्च कर सकता है। कुछ खरीदने से पैसा जहां एक विक्रेता सोचता है कि यह कुछ आवश्यकताओं को पूरा करता है :)


यह बड़ी नौकरियों के वितरण के लिए दिलचस्प है, लेकिन मेरी नौकरियां बहुत अधिक अस्थायी हैं। मेरे पास कुछ नौकरियां हैं जिन्हें इस तरह से कतारबद्ध किया जा सकता है, हालांकि, मैं उन लोगों के लिए इसे ध्यान में रखूंगा।
कैकेमॉक्स

1

मैंने CA से एस्प्रेसो (साइबरमेशन) का उपयोग किया है। यकीन नहीं होता कि अब वे इसे क्या कह रहे हैं। मैंने UC4 का भी उपयोग किया है। वे दोनों काम करते हैं, बहुत सारे पैसे खर्च करते हैं (मेरी समझ में), और बनाए रखने के लिए एक भालू हो सकता है, लेकिन वे यह करते हैं कि यह टिन पर क्या कहता है। / संपादित करें - चूक गए कि आप कहते हैं कि व्यावसायिक अनुप्रयोग बहुत महंगे हैं। मैं निश्चित रूप से सहमत हो सकता हूं, लेकिन कुछ कंपनियों के लिए, यह इसके लायक है, खासकर जब यह व्यावसायिक अनुप्रयोगों के लिए है जो पैसा बनाते हैं।


1

मैंने ओपन सोर्स जॉब शेड्यूलर के साथ प्रोडक्शन के माहौल में 2000+ लाइन के सेंट्रल कॉन्टैब को बदलने के विकल्प के रूप में काम किया है। क्रोन के साथ चीजें इतनी जटिल हो गईं, कि हम यह निर्धारित नहीं कर सके कि डाउनटाइम विंडो क्या थीं या इंटर-सर्वर निर्भरता से कैसे निपटें। इस उत्पाद ने मदद की, लेकिन सेटअप करने के लिए थोड़ा जटिल था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.