मैं अपने सभी reducers को एक विशिष्ट रिकॉर्ड कैसे भेज सकता हूं?हैडोप सभी रेड्यूसर को रिकॉर्ड भेजता है
मुझे पार्टिशनर क्लास पता है और यह क्या करता है, लेकिन मुझे यह सुनिश्चित करने का कोई आसान तरीका नहीं दिख रहा है कि रिकॉर्ड सभी रेड्यूसर पर जाता है।
असल में, विभाजनर इस विधि है:
int getPartition(K2 key,
V2 value,
int numPartitions)
मेरा पहला विचार विभाजनर और मैपर के लिए सहयोग इस प्रकार थी: मैपर रिकॉर्ड को कम की संख्या के बराबर कई बार outputting रहता है कार्य और विभाजनकर्ता सभी सब्स (0 से numPartitions-1 तक) देता है, इस तरह यह सुनिश्चित करना कि रिकॉर्ड सभी विभाजन तक पहुंचता है।
क्या इसे हल करने के किसी अन्य, स्मार्ट तरीके हैं? उदाहरण के लिए मैं उन अभिलेखों के लिए -1 लौटाता हूं जिन्हें मुझे सभी विभाजनों में भेजा जाना चाहिए और फ्रेमवर्क मेरे लिए लौटाता है जब यह लौटा -1 देखता है।
मुझे आपको जिस समूह की तुलना करने की आवश्यकता है, उसके संबंध में मुझे यह उत्तर अपडेट करने की भी आवश्यकता है। –
इस तरह मैं भी सोच रहा था। मैंने इसे बहुत स्पष्ट रूप से वर्णित नहीं किया और मैं पार्टिशनर ऑब्जेक्ट में काउंटर रखने का भी विचार कर रहा था ताकि यह पता चल सके कि अगला विभाजन क्या है। हालांकि, मुझे यकीन नहीं है कि यह एक समाधान है क्योंकि पार्टिशनर ऑब्जेक्ट जीसी-एड और काउंटर रीसेट हो सकता है। ग्रुपिंग तुलनित्र के बारे में, मुझे लगता है कि यह मेरी आवश्यकताओं पर निर्भर करता है जिसका मैंने वर्णन नहीं किया था। यदि आवश्यक हो तो मैं वापस आऊंगा। धन्यवाद! – Razvan