मेरे पास बहुत सी छोटी फाइलें (औसत 30-40 एमबी प्रत्येक) द्वारा बनाई गई डेटासेट है। मैं MapReduce द्वारा उन पर विश्लेषण चलाने के लिए चाहता था लेकिन प्रत्येक नौकरी के साथ, मैपर फिर से फाइलें पढ़ेगा जो I/O प्रदर्शन (ओवरहेड्स इत्यादि) पर भारी भार बनाता है।हडोप मैपराइडस कई नौकरियों के लिए एक बार डेटा सेट पढ़ता है
मैं जानना चाहता था कि एक बार मैपर का उपयोग करना संभव है, अलग-अलग reducers के लिए विभिन्न अलग-अलग आउटपुट उत्सर्जित करें? जैसा कि मैंने चारों ओर देखा, मैंने देखा कि कई reducers संभव नहीं हैं, लेकिन केवल संभव चीज नौकरी चेनिंग है। हालांकि, मैं इन नौकरियों को समानांतर में चलाने के लिए, अनुक्रमिक रूप से नहीं चलाना चाहता, क्योंकि वे सभी एक ही डेटासेट को इनपुट के रूप में उपयोग करेंगे और विभिन्न विश्लेषण चलाएंगे। तो, सारांश में, बात मैं चाहता हूँ कुछ नीचे की तरह है:
Reducer = Analytics1 /
मैपर - प्रसारण = Analytics2
\ Reducer = Analytics3 ...
यह संभव है? या क्या आपके पास कामकाज के लिए कोई सुझाव है? कृपया मुझे कुछ सुझाव दे। इन छोटी फ़ाइलों को फिर से पढ़ना मेरे विश्लेषण के लिए एक विशाल ओवरहेड और प्रदर्शन में कमी बनाता है।
अग्रिम धन्यवाद!
संपादित करें: मैं यह उल्लेख करना भूल गया कि मैं यार्ड के साथ हैडोप v2.1.0-beta का उपयोग कर रहा हूं।
आप अपने reducer (ओं) एक ही पास/नौकरी में सभी Analytics (1-3) कर सकते हैं। – cabad
लेकिन प्रत्येक reducer विभिन्न इनपुट ले सकता है ( जोड़े)। तो केवल एक reducer में सभी विश्लेषिकी चलाना मेरे लिए काम नहीं करता है। मैपर को अलग-अलग reducers (एनालिटिक्स) के लिए अलग जोड़े उत्सर्जित करना चाहिए। इसके अलावा, अलग-अलग जोड़े के साथ, मैं शफल और सॉर्ट तंत्र से लाभ प्राप्त करने में सक्षम होना चाहता हूं जो कि reducers से पहले होता है। –