2015-10-07 33 views
5

स्पार्क स्ट्रीमिंग में बैच आरडीडी के बैच हैं। 3 आरडीडी के बैच का उपयोग करें।स्पार्क स्ट्रीमिंग में आरडीडी विभाजन

प्रलेखन

इसके अलावा चिंगारी का कहना है कि एक ब्लॉक रिसीवर द्वारा हर 200 मि.से बनाई गई है, और विभाजन ब्लॉक करने के लिए आवंटित किया है।

1 सेकंड में कहें कि मेरे पास 3 आरडीडी का बैच है, 200 ब्लॉक माना जाता है तो 5 ब्लॉक के साथ।

तो कैसे एक RDD कार्यकर्ता नोड्स भर में विभाजित हो जाएगी, एकल RDD कि विभाजित किया जाएगा या एक पूरा बैच है।

मैंने इसे गलत तरीके से लिया होगा। कृपया मुझे मार्गदर्शन करें

उत्तर

13

एक स्ट्रीमिंग बैच एक आरडीडी से मेल खाता है। उस आरडीडी में एन विभाजन होंगे, जहां एन = बैच अंतराल/ब्लॉक अंतराल होगा। मान लें कि आपके पास मानक 200ms ब्लॉक अंतराल और 2 सेकंड का बैच अंतराल है, तो आपके पास 10 विभाजन होंगे। ब्लॉक एक रिसीवर द्वारा बनाए जाते हैं, और प्रत्येक रिसीवर मेजबान में आवंटित किया जाता है। तो, उन 10 विभाजन एक नोड में हैं और उन्हें दूसरे नोड में दोहराया जाता है।

जब आरडीडी प्रसंस्करण के लिए सबमिट किया जाता है, तो मेजबान चलाने वाले मेजबान उस होस्ट से डेटा पढ़ेंगे। उसी नोड पर निष्पादित कार्यों में "NODE_LOCAL" क्षेत्र होगा, जबकि अन्य नोड्स पर निष्पादित कार्यों में "कोई भी" क्षेत्र होगा और इसमें अधिक समय लगेगा।

इसलिए, समानांतर प्रसंस्करण में सुधार करने, यह कई रिसीवर का आवंटन और आगे की प्रक्रिया के लिए एक एकल DStream बनाने के लिए संघ का उपयोग करने की सिफारिश की है। इस तरह डेटा समानांतर में कई नोड्स द्वारा उपभोग और संसाधित किया जाएगा।

+0

अरे धन्यवाद @maasg – dexter

+0

धन्यवाद @maasg। बस पुष्टि करने के लिए, यदि हमारे पास एकाधिक रिसीवर हैं तो हमारे पास एकाधिक डीस्ट्रीम हैं और प्रत्येक डीस्ट्रीम एक आरडीडी से मेल खाता है। इसलिए, जब हम एकाधिक Dstreams संघ करते हैं तो हमें एक एकल डीस्ट्रीम मिलता है। इस डीस्ट्रीम में कई आरडीडी या एकल आरडीडी शामिल है? –

+0

@ DineshSachdev108 बू परिभाषा संघ() इसका मतलब यह है परिणाम एक dStream रूप में अच्छी तरह हो जाएगा "एक नया DStream कि स्रोत DStream और otherDStream में तत्वों की यूनियन शामिल लौटें" होगा। और परिभाषा के अनुसार "डीस्ट्रीम को आरडीडी के अनुक्रम के रूप में दर्शाया जाता है। जिसका अर्थ है कि परिणामस्वरूप आपके रिसीवर को कितने बैच प्राप्त हुए हैं, इसके परिणामस्वरूप कई आरडीडी होंगे। – bigdatamann

0

क्या यह अभी भी स्पार्क के नए संस्करण में लागू है?

मैंने an article पढ़ा है जहां स्पार्क पर एकाधिक रिसीवर के साथ परिदृश्य पुराना है और इसके बजाय नया प्रत्यक्ष काफ्का एपीआई (createDirectStream) आपके लिए बहुत अधिक चीज़ों का ख्याल रखेगा।

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