मुझे आश्चर्य है कि क्या सदस्य ऑब्जेक्ट जोड़ना संभव है जिसे एकाधिक मानचित्र() कॉल में उपयोग किया जा सकता है। उदाहरण के लिए, एक StringBuilder:हैडोप का मैपर ऑब्जेक्ट एकाधिक थ्रेड में साझा किया गया है?
private StringBuilder builder;
public void map(...){
...
builder.setLength(0);
builder.append(a);
builder.append(b);
builder.append(c);
d = builder.toString();
...
}
जाहिर है, अगर नक्शाकार वस्तु से अधिक थ्रेड में साझा किया जाने, बिल्डर वस्तु ऊपर के रूप में एक से अधिक धागे से समवर्ती पहुंच के कारण उम्मीद से व्यवहार नहीं करेगा।
तो मेरा सवाल यह है: क्या यह आश्वस्त है कि हैडूप में प्रत्येक थ्रेड अपने लिए एक समर्पित मैपर ऑब्जेक्ट का उपयोग करेगा? या यह एक विन्यास योग्य व्यवहार है?
धन्यवाद
यही वह है जिसे मैं जानना चाहता हूं। धन्यवाद। – JRaSH
यदि आपको संपूर्ण कुंजी/मान वस्तु की आवश्यकता है, तो आपको केवल ऑब्जेक्ट क्लोन करने की आवश्यकता है, अन्यथा यदि आपको स्ट्रिंगबफर में जो कुछ सामग्री जोड़ती है, तो आपको ठीक लगेगा। आप जिस भी कॉल को मैप कॉल के बीच बफर कर रहे हैं, उसे रेड्यूसर को फ्लश/लिखने के लिए क्लीनअप विधि (मैं ओवरराइड करने के लिए नाम भूल जाता हूं) को भूलना न भूलें, अन्यथा आप Reducers पर कभी भी कुछ डेटा नहीं भेज पाएंगे। – Drizzt321