2013-06-23 12 views
41

में मैं हालांकि मैं थोड़ा "काम" की अवधारणा से उलझन में हूँ महान लेख "Understanding the parallelism of a Storm topology"क्या "काम" तूफान समानांतरवाद

का पालन करते हुए ट्विटर तूफान जानने के लिए कोशिश कर रहा हूँ है। क्या कार्य एक घटक (स्पॉट या बोल्ट) का एक चल रहा उदाहरण है? एक निष्पादक जो कई कार्य करता है वास्तव में यह कह रहा है कि निष्पादक द्वारा कई बार एक ही घटक को निष्पादित किया जाता है, क्या मैं सही हूं?

इसके अलावा एक सामान्य समानांतरवाद अर्थ में, तूफान एक टोंटी या बोल्ट के लिए एक समर्पित धागा (निष्पादक) अंडे होगा, लेकिन क्या एक प्रबंधक (धागा) कई कार्य होने से समानांतरवाद के लिए योगदान दिया है? मुझे लगता है कि धागे में कई कार्य होते हैं, चूंकि एक थ्रेड अनुक्रमिक रूप से निष्पादित करता है, केवल थ्रेड को "कैश्ड" संसाधन का एक प्रकार बना देता है, जो अगले कार्य चलाने के लिए नए धागे को रोकता है। क्या मैं सही हूँ?

मैं जांच करने के लिए और अधिक समय लेने के बाद अपने आप से उन भ्रम स्पष्ट सकता है, लेकिन क्या आप जानते हैं, हम दोनों प्यार stackoverflow ;-)

अग्रिम धन्यवाद।

+1

मैंने एक ही भ्रम को दूर करने के लिए तीन बार प्रलेखन पढ़ा है और आपने मेरी समस्या हल की है। – pavan

उत्तर

62

अस्वीकरण: मैंने the article लिखा है जिसे आपने उपरोक्त प्रश्न में संदर्भित किया है।

हालांकि मैं "कार्य" की अवधारणा से थोड़ा उलझन में हूं। क्या कार्य एक घटक (स्पॉट या बोल्ट) का एक चल रहा उदाहरण है? एक निष्पादक जो कई कार्य करता है वास्तव में यह कह रहा है कि निष्पादक द्वारा कई बार एक ही घटक को निष्पादित किया जाता है, क्या मैं सही हूं?

हाँ, और हाँ।

इसके अलावा एक सामान्य समानांतरवाद अर्थ में, तूफान एक टोंटी या बोल्ट के लिए एक समर्पित धागा (निष्पादक) अंडे होगा, लेकिन क्या एक प्रबंधक (धागा) कई कार्य होने से समानांतरवाद के लिए योगदान दिया है?

निष्पादक प्रति एक से अधिक कार्य चल रहा है समानांतरवाद के स्तर को बढ़ा नहीं करता है - एक निष्पादक हमेशा एक धागा है कि वह अपने कार्य, जिसका अर्थ है कि कार्य एक निष्पादक पर क्रमानुसार चलाने के सभी के लिए उपयोग करता है।

जैसा कि मैंने लेख में लिखा था कृपया ध्यान दें कि:

  • निष्पादक थ्रेड की संख्या बदला जा सकता है के बाद टोपोलॉजी शुरू कर दिया गया है (storm rebalance आदेश देखें)।
  • टोपोलॉजी के कार्यों की संख्या स्थिर है।

और परिभाषा के अनुसार #executors <= #tasks का आविष्कार है।

तो निष्पादक धागा प्रति 2 + कार्य होने के लिए एक कारण है/आप लचीलापन विस्तार करने के लिए देने के टोपोलॉजी ऑफ़लाइन लेने के बिना भविष्य में storm rebalance आदेश के माध्यम से टोपोलॉजी पैमाने है। उदाहरण के लिए, कल्पना करें कि आप 15 मशीनों के तूफान क्लस्टर के साथ शुरू करते हैं लेकिन पहले से ही जानते हैं कि अगले सप्ताह एक और 10 बॉक्स जोड़े जाएंगे। यहां आप पहले से ही 15 प्रारंभिक बक्से (जो कि 25 बक्से से धीमे हैं) पर 25 मशीनों के अनुमानित समांतरता स्तर पर टोपोलॉजी चलाने का विकल्प चुन सकते हैं। एक बार अतिरिक्त 10 बक्से एकीकृत हो जाने पर आप storm rebalance टोपोलॉजी को बिना किसी डाउनटाइम के सभी 25 बक्से का पूर्ण उपयोग करने के लिए कर सकते हैं।

प्रति निष्पादक 2+ कार्यों को चलाने का एक अन्य कारण (मुख्य रूप से कार्यात्मक) परीक्षण के लिए है। उदाहरण के लिए, यदि आपकी देव मशीन या सीआई सर्वर केवल चलाने के लिए पर्याप्त शक्तिशाली है, तो कहें, मशीन पर चल रहे सभी अन्य सामानों के साथ 2 निष्पादक, आप अभी भी 30 कार्य (यहां: 15 निष्पादक) चला सकते हैं यह देखने के लिए कि कोड जैसे कि आपका कस्टम तूफान समूहिंग अपेक्षित के रूप में काम कर रहा है।

अभ्यास में हम आम तौर पर हम प्रति निष्पादक 1 कार्य चलाते हैं।

पीएस: ध्यान दें कि तूफान वास्तव में a few more threads behind the scenes फैल जाएगा। उदाहरण के लिए, प्रत्येक निष्पादक के पास अपना "प्रेषण धागा" होता है जो आउटगोइंग टुपल्स को संभालने के लिए ज़िम्मेदार होता है। उदाहरण के लिए "सिस्टम-स्तर" पृष्ठभूमि धागे भी हैं "आपके" थ्रेड के साथ चलने वाले एकिंग टुपल्स। आईआईआरसी तूफान यूआई उन "आपके" धागे के अलावा उन अचूक धागे की गणना करता है।

+1

धन्यवाद माइकल। अब यह बहुत स्पष्ट है। –

+0

@ मिगुणो मेरे पास एक सवाल है, मान लीजिए कि आपने शुरुआत में एक बोल्ट किया है जो एक कार्य करता है (जैसे समूह द्वारा संचालित बैपल्स पर समूह द्वारा) मैं इसे लंबवत कैसे स्केल कर सकता हूं? मेरी समझ से प्रत्येक कार्यकर्ता अनिवार्य रूप से टोपोलॉजी का "दर्पण" है, लेकिन मैं सभी क्लस्टर बॉक्स में लोड वितरित करने के लिए इसे लंबवत कैसे स्केल कर सकता हूं। इस मामले में मैं समूह को प्रदर्शन करने वाले बोल्ट की संख्या 1 से 2 (या अधिक) में बदलना चाहता हूं। इसे स्पष्ट करने के लिए आपका इनपुट अद्भुत होगा। – jtimz

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