2010-01-13 19 views
8

मैं एक ऐसी परियोजना पर काम कर रहा हूं जो बहुत बड़ी मात्रा में डेटा का विश्लेषण करने से संबंधित है, इसलिए मैंने हाल ही में मैपरेडस की खोज की, और इससे पहले कि मैं इसमें आगे बढ़ूं, मैं यह सुनिश्चित करना चाहता हूं कि मेरी अपेक्षाएं सही हों।MapReduce मेरे लिए सही है?

डेटा के साथ बातचीत वेब इंटरफेस से होगी, इसलिए प्रतिक्रिया समय यहां महत्वपूर्ण है, मैं 10-15 दूसरी सीमा सोच रहा हूं। मेरा डेटा मानने से पहले मैं किसी भी विश्लेषण करने से पहले वितरित फ़ाइल सिस्टम में लोड हो जाऊंगा, मैं किस प्रकार का प्रदर्शन कर सकता हूं?

मान लें कि मुझे एक साधारण 5 जीबी एक्सएमएल फ़ाइल को अच्छी तरह से फ़िल्टर करने की आवश्यकता है, इसमें काफी फ्लैट डेटा संरचना और 10,000,000 रिकॉर्ड हैं। और मान लें कि आउटपुट के परिणामस्वरूप 100,000 रिकॉर्ड होंगे। क्या 10 सेकंड संभव है?

यदि यह है, तो मैं किस प्रकार का हार्डवेयर देख रहा हूं? यदि नहीं, तो क्यों नहीं?

मैंने उदाहरण नीचे रखा, लेकिन अब मेरी इच्छा है कि मैंने नहीं किया। 5 जीबी सिर्फ एक नमूना था जिसके बारे में मैं बात कर रहा था, और हकीकत में मैं बहुत सारे डेटा से निपट रहा था। 5 जीबी दिन के एक घंटे के लिए डेटा हो सकता है, और मैं एक निश्चित मानदंड को पूरा करने वाले सभी रिकॉर्डों की पहचान करना चाहूंगा।

डेटाबेस वास्तव में मेरे लिए एक विकल्प नहीं है। मैं यह जानना चाहता था कि मैपरेडस का उपयोग करने से मैं सबसे तेज़ प्रदर्शन कर सकता हूं। क्या यह हमेशा मिनटों या घंटों में होता है? क्या यह कभी सेकंड नहीं है?

+1

पर विचार करें मानचित्र को कम है कि डेटा के लिए बाहर एक अभिकलन भेजने के बारे में है (कई मशीनों है कि उनके टुकड़ा पर काम खत्म हो गया संग्रहीत)। एक एकल 5 जीबी फ़ाइल वास्तव में मॉडल फिट नहीं है। – z5h

+1

MapReduce एक 5 जीबी फ़ाइल के लिए ओवरकिल है। आप इसे एक मशीन पर संभाल सकते हैं, खासकर यदि यह दिन में केवल एक बार बदल रहा है। इसके अलावा, MapReduce एक अवधारणा है, वास्तविक कार्यान्वयन नहीं। यदि आप इसका उपयोग करने जा रहे थे, तो आप विशेष कार्यान्वयन की जांच करना चाहेंगे। –

+0

तो MapReduce (या किसी अन्य अवधारणा) उपयोग करने के लिए सही बात है विश्लेषण की तरह आपके मन में है, कितनी बार अपने डेटा परिवर्तन, क्या ढंग से पर निर्भर है, और पूर्व प्रसंस्करण की किस तरह संभव है। इससे पहले कि आप एक उपयोगी उत्तर प्राप्त करने की उम्मीद कर सकें, आपको निश्चित रूप से अधिक जानकारी प्रदान करनी होगी! –

उत्तर

10

मैपराइडस बड़े डेटासेट की प्रसंस्करण को स्केल करने के लिए अच्छा है, लेकिन यह उत्तरदायी होने का इरादा नहीं है। उदाहरण के लिए, हैडोप कार्यान्वयन में स्टार्टअप के ओवरहेड में आमतौर पर कुछ मिनट लगते हैं। यहां विचार एक प्रसंस्करण नौकरी लेना है जो दिन लेता है और इसे घंटों, या घंटों तक मिनटों तक ले जाता है, लेकिन वेब अनुरोध के जवाब में आप एक नई नौकरी शुरू नहीं करेंगे और इसे पूरा करने की उम्मीद करेंगे जवाब देने का समय।

क्यों यह मामला है पर स्पर्श करने के लिए, जिस तरह से (सामान्य, उच्च-स्तरीय अवलोकन) MapReduce काम करता है पर विचार करें:

  • नोड्स का एक गुच्छा प्राप्त के कुछ भागों इनपुट डेटा (बुलाया विभाजन) और (अंतिम चरण से उत्पादन) कुछ प्रसंस्करण (मानचित्र कदम)

  • मध्यवर्ती डेटा कर इस तरह के repartitioned है ऐसे ही कुंजी के साथ डेटा को एक साथ समाप्त होता है। इसके लिए आमतौर पर नोड्स के बीच कुछ डेटा स्थानांतरण की आवश्यकता होती है।

  • नोड्स को कम (जो जरूरी नोड्स नक्शाकार से अलग नहीं हैं - एक मशीन लगातार एकाधिक कार्य कर सकते हैं) कदम को कम करते हैं।

  • परिणाम डेटा एकत्रित और अंतिम आउटपुट सेट का उत्पादन करने के लिए विलय कर दिया गया है।

जबकि Hadoop, एट अल डेटा इलाके जितना संभव हो उच्च रखने की कोशिश, वहां अभी भी फेरबदल के आसपास है कि प्रसंस्करण के दौरान होता है भी पर्याप्त मात्रा में है। इसे अकेले वितरित मैपरेडस कार्यान्वयन के साथ एक उत्तरदायी वेब इंटरफ़ेस का समर्थन करने से रोकना चाहिए।

संपादित: के रूप में जनवरी Jongboom ने कहा, MapReduce preprocessing डेटा के लिए बहुत अच्छा है कि इस तरह के वेब क्वेरी तेजी क्योंकि वे प्रसंस्करण में संलग्न करने की जरूरत नहीं है हो सकता है। वेबपृष्ठों के एक बड़े सेट से एक उलटा इंडेक्स बनाने के प्रसिद्ध उदाहरण पर विचार करें।

+4

आप लेकिन कुछ MapReduce alghoritm बना सकते हैं और यह, डेटा preprocess तो अपने webapp में आप अनुकूलित डेटासेट क्वेरी कर सकते हैं कर सकते हैं। इस तरह आप उत्तरदायी प्रश्न प्राप्त कर सकते हैं। –

+1

@Jan Jongboom - बिल्कुल – danben

+0

कि एक्सएमएल फ़ाइल मैं डेटा मिल जाएगा, और यह एक दिन में एक बार क्या होगा। इसलिए, मेरे लिए इसे संसाधित करना और इसे बहुत ही पचाने योग्य प्रारूप में संग्रहीत करना संभव है। – PBG

2

ऐसे Hadoop के रूप में MapReduce का एक वितरित कार्यान्वयन एक 5GB एक्सएमएल

  • Hadoop डेटा की बड़ी मात्रा पर सबसे अच्छा काम करता प्रसंस्करण के लिए एक अच्छा फिट नहीं है। हालांकि 5 जीबी काफी बड़ी एक्सएमएल फाइल है, लेकिन इसे आसानी से एक मशीन पर संसाधित किया जा सकता है।
  • हडोप नौकरियों में इनपुट फ़ाइलों को विभाजित करने की आवश्यकता है ताकि फ़ाइल के विभिन्न हिस्सों को विभिन्न मशीनों पर संसाधित किया जा सके। जब तक आपका एक्सएमएल छोटा रूप से फ्लैट न हो, तब तक फ़ाइल का विभाजन गैर निर्धारक नहीं होगा, इसलिए आपको विभाजन के लिए फ़ाइल को प्रारूपित करने के लिए एक पूर्व प्रसंस्करण चरण की आवश्यकता होगी।

यदि आपके पास 5 जीबी फाइलें हैं, तो आप विभाजन को वितरित करने के लिए हैडऑप का उपयोग कर सकते हैं। आप इसका उपयोग फ़ाइलों में परिणामों को मर्ज करने के लिए भी कर सकते हैं और परिणामों को अपने वेब इंटरफ़ेस द्वारा उपयोग के लिए तेज़ पूछताछ के प्रारूप में संग्रहीत कर सकते हैं क्योंकि अन्य उत्तरों का उल्लेख किया गया है।

0

ऐसा लगता है कि तुम क्या चाहते हो सकता है एक अच्छा पुराने जमाने डेटाबेस है की तरह। नक्शा/कम करने के रूप में काफी आधुनिक नहीं है, लेकिन अक्सर इस तरह की छोटी नौकरियों के लिए पर्याप्त है। आपकी फ़िल्टरिंग को कितनी लचीला होने की आवश्यकता है, इस पर निर्भर करते हुए, आप या तो अपनी 5 जीबी फ़ाइल को SQL डेटाबेस में आयात कर सकते हैं, या आप अलग-अलग फाइलों में रिकॉर्ड्स संग्रहीत करके, अपनी विशाल इंडेक्सिंग योजना को स्वचालित रूप से कार्यान्वित कर सकते हैं, एक विशाल हैशटेबल में मेमोरी में सब कुछ संग्रहीत कर सकते हैं, या जो भी आपकी जरूरतों के लिए उपयुक्त है।

+0

मेरी इच्छा है कि मैंने 5 जीबी नहीं कहा, हर कोई इस पर झुका हुआ प्रतीत होता है। अंततः हम जिस डेटा से निपटेंगे, वह दिन में 100 जीबी के क्रम में होगा, और हमें कई दिनों के डेटा को संसाधित करना होगा। – PBG

+1

हाँ, हम इस पर झुका रहे हैं क्योंकि अधिकांश मैप्रिडस कार्यान्वयन बड़े डेटासेट को संभालने के लिए डिज़ाइन किए गए हैं, छोटे नहीं :) –

3

MapReduce एक सामान्य शब्द है। आप शायद यह पूछने का मतलब है कि क्या हैडोप जैसे नौकरी नियंत्रण के साथ एक पूरी तरह से विशेष रुप से प्रदर्शित मैपरेडस ढांचा, आपके लिए सही है। उत्तर अभी भी ढांचे पर निर्भर करता है, लेकिन आम तौर पर, मैप रेडियस फ्रेमवर्क की नौकरी नियंत्रण, नेटवर्क, डेटा प्रतिकृति, और गलती सहनशीलता सुविधाओं को यह उन कार्यों के लिए उपयुक्त बनाता है जो मिनट, घंटे या उससे अधिक समय लेते हैं, और शायद यह छोटा और सही उत्तर है तुम्हारे लिए।

मैप्रिडस प्रतिमान आपके लिए उपयोगी हो सकता है यदि आपके कार्यों को अपरिपक्व मैपर के बीच विभाजित किया जा सकता है और एक या अधिक reducers के साथ संयुक्त हो सकता है, और आपके द्वारा उपलब्ध भाषा, ढांचे और बुनियादी ढांचे को आप इसका लाभ उठाने देते हैं।

वहाँ जरूरी MapReduce और एक डेटाबेस के बीच एक अंतर नहीं है। एसक्यूएल जैसी घोषणात्मक भाषा अमूर्त समांतरता का एक अच्छा तरीका है, जैसा कि एचबीएएस जैसे क्वेरी करने योग्य मैपरेडस ढांचे हैं। This article एक के-साधन एल्गोरिदम के MapReduce कार्यान्वयन पर चर्चा करता है, और एक शुद्ध SQL उदाहरण के साथ समाप्त होता है (जो मानता है कि सर्वर इसे समानांतर कर सकता है)।

आदर्श रूप में, एक डेवलपर पाइपलाइन के बारे में बहुत ज्यादा सब पर पता करने की जरूरत नहीं है। Erlang examples यह दिखाने के लिए कि कैसे कार्यात्मक भाषा सुविधाओं प्रक्रिया नियंत्रण संभालती है।

इसके अलावा, वहाँ हल्के तरीके, इस तरह के रूप में bashreduce MapReduce साथ खेलने के लिए कर रहे हैं कि ध्यान में रखना।

2

मैं हाल ही में एक ऐसी प्रणाली है कि मोटे तौर पर इतिहास के 30 दिनों के साथ 120GB/घंटा प्रक्रियाओं पर काम किया। हमने संगठनात्मक कारणों से नेटजेज़ा का उपयोग करके समाप्त किया, लेकिन मुझे लगता है कि आपके डेटा और प्रश्नों के विवरण के आधार पर हैडोप एक उपयुक्त समाधान हो सकता है।

ध्यान दें कि एक्सएमएल बहुत वर्बोज़ है। आपकी मुख्य लागत में से एक डिस्क पर पढ़/लिखना होगा। यदि आप कर सकते हैं, तो एक और कॉम्पैक्ट प्रारूप चुना।

अपने क्लस्टर में नोड्स की संख्या के प्रकार और डिस्क और सीपीयू की संख्या पर निर्भर करेगा। आप किसी न किसी गणना के लिए मान सकते हैं कि आप डिस्क की गति से सीमित रहेंगे। यदि आपकी 7200 आरपीएम डिस्क 50 एमबी/एस पर स्कैन कर सकती है और आप 10 जी में 500 जीबी स्कैन करना चाहते हैं, तो आपको 1000 नोड्स की आवश्यकता है।

आप अमेज़न के EC2, जहां आप एक Hadoop क्लस्टर खड़े हो जाओ और मिनट द्वारा भुगतान कर सकते हैं, या आप अपने बुनियादी ढांचे पर एक MapReduce काम चला सकते हैं के साथ खेलने के लिए चाहते हो सकता है।

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