2009-10-19 13 views
16

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

मैं Hadoop के बारे में पढ़ रहा था और अगर यह मेरे सिमुलेशन के बहुत सारे चल मदद कर सकते हैं सोच रहा; मेरे पास निकट भविष्य में लगभग 8 नेटवर्क वाली डेस्कटॉप मशीनों तक पहुंच हो सकती है। अगर मैं सही ढंग से समझता हूं, तो नक्शा फ़ंक्शन मेरे अनुकरण को चला सकता है और परिणाम निकाल सकता है, और reducer पहचान हो सकती है।

जिस चीज के बारे में मुझे चिंता है वह एचडीएफएस है, जो कि बड़ी फाइलों के लिए प्रतीत होता है, छोटी सीएसवी फाइलों की चपेट में नहीं, (इनमें से कोई भी 64 एमबी के न्यूनतम अनुशंसित ब्लॉक आकार को भी बड़ा करने के लिए पर्याप्त नहीं होगा)। इसके अलावा, प्रत्येक सिमुलेशन को केवल प्रत्येक CSV फ़ाइलों की एक समान प्रति की आवश्यकता होगी।

क्या हैडोप मेरे लिए गलत उपकरण है?

उत्तर

20

मैं यहाँ उत्तर है कि मूल रूप से कह रहे हैं, की एक संख्या देख "नहीं, तुम सिमुलेशन के लिए Hadoop उपयोग नहीं करना चाहिए, क्योंकि यह सिमुलेशन के लिए नहीं बनाया गया था।" मेरा मानना ​​है कि यह एक छोटा सा दृश्य है और 1 9 85 में कहने वाले किसी के समान होगा, "आप वर्ड प्रोसेसिंग के लिए पीसी का उपयोग नहीं कर सकते हैं, पीसी स्प्रेडशीट्स के लिए हैं!"

Hadoop अनुकरण इंजन के निर्माण के लिए एक शानदार रूपरेखा है। मैं महीनों के लिए इस उद्देश्य के लिए इसे का उपयोग किया गया है और छोटे डेटा/बड़े गणना की समस्याओं के साथ महान सफलता मिली है। यहाँ शीर्ष 5 कारण मैं अनुकरण के लिए Hadoop के लिए चले है (आर सिमुलेशन के लिए मेरी भाषा के रूप में उपयोग करते हुए, Btw):

  1. प्रवेश: के माध्यम से या तो मैं Hadoop समूहों पट्टा कर सकते हैं अमेज़न लचीला मानचित्र कम करें और मेरे पास नहीं है किसी क्लस्टर के प्रशासन में किसी भी समय और ऊर्जा का निवेश करना। इसका मतलब था मैं वास्तव में मेरी संगठन में प्रशासनिक स्वीकृति प्राप्त करने के लिए बिना एक वितरित ढांचे पर सिमुलेशन शुरू कर सकता है!
  2. प्रशासन: Hadoop, काम पर नियंत्रण के मुद्दों को संभालती है, नोड विफलता की तरह अदृश्य। मुझे इन शर्तों के लिए कोड नहीं करना है।यदि कोई नोड विफल रहता है, तो हैडोप यह सुनिश्चित करता है कि उस नोड के लिए निर्धारित सिम्स किसी अन्य नोड पर चलें।
  3. अपग्रेड करने योग्य: एक सामान्य जेनेरिक मानचित्र होने के नाते इंजन को एक महान वितरित फ़ाइल सिस्टम के साथ कम करें यदि आपको बाद में समस्याएं हैं जिनमें बड़े डेटा शामिल हैं यदि आप हैडोप का उपयोग करने के लिए उपयोग किए जाते हैं तो आपको नए समाधान में माइग्रेट करने की आवश्यकता नहीं है। तो हैडोप आपको सिमुलेशन प्लेटफॉर्म देता है जो कि (लगभग) मुफ्त के लिए एक बड़े डेटा प्लेटफॉर्म पर भी स्केल करेगा!
  4. समर्थन: खुली स्रोत होने और कई कंपनियों द्वारा उपयोग की जाने वाली, हडोप के लिए लाइन और ऑफ दोनों पर संसाधनों की संख्या कई हैं। उनमें से कई संसाधन "बड़े डेटा" की धारणा के साथ लिखे गए हैं लेकिन वे मानचित्र में सोचने के तरीके सीखने के लिए अभी भी उपयोगी हैं।
  5. पोर्टेबिलिटी: मैंने स्वामित्व वाले उपकरणों का उपयोग करके मालिकाना इंजन के शीर्ष पर विश्लेषण किया है जो काम करने के लिए काफी सीख लेता है। जब मैंने बाद में नौकरियों को बदल दिया और खुद को उसी मालिकाना ढेर के बिना एक फर्म में पाया, मुझे उपकरण का एक नया सेट और एक नया सिमुलेशन स्टैक सीखना पड़ा। फिर कभी नहीं। मैंने एसएएस के लिए आर और हडोप के लिए हमारे पुराने ग्रिड ढांचे में कारोबार किया। दोनों खुले स्रोत हैं और मुझे पता है कि मैं भविष्य में किसी भी नौकरी पर उतर सकता हूं और तुरंत गधे को मारने के लिए अपनी उंगलियों पर उपकरण रख सकता हूं।

आप Hadoop का उपयोग कर अपने अनुभवों को आर के साथ के बारे में अधिक जानने में रुचि रखते हैं, यहाँ मई 2010 में video of a presentation I gave at the Chicago Hadoop User Group है:

+1

मुझे लगता है कि यह अधिक पसंद है, आपको डेटाबेस के लिए स्प्रेडशीट का उपयोग नहीं करना चाहिए। निश्चित रूप से आप * एक डेटाबेस के रूप में एक स्प्रेडशीट का उपयोग कर सकते हैं, और कई लोग करते हैं, लेकिन यह आपके लिए क्या किया गया था और इसके लिए आप इसका उपयोग कर रहे हैं के बीच मेल नहीं खाते के कारण आपके लिए समस्याएं पेश कर सकते हैं (या नहीं)। उस ने कहा, कुछ लोगों के पास डेटाबेस तक पहुंच नहीं है इसलिए स्प्रेडशीट उनके लिए सबसे अच्छा विकल्प है। –

+0

यह वास्तव में एक अच्छा सादृश्य एमिल है। बहुत अच्छा मुद्दा। लेकिन अगर सिमुलेशन के लिए हैडोप का उपयोग करना वास्तव में डेटाबेस में संख्याओं को संग्रहित करना है। कोई कह सकता है, "संख्याओं के कॉलम संग्रहित करना? यह एक स्प्रेडशीट समस्या है! स्प्रेडशीट का उद्देश्य संख्याओं के लिए बनाया गया था!" लेकिन फिर जब आपके पास 1000 मिमी संख्याएं हैं .. ओह ओह, यह एक डेटाबेस समस्या है। लेकिन 1000 मिमी नंबर संग्रहित करना डेटाबेस के लिए नहीं बनाया गया था। डीबी स्टोर टेक्स्ट, ब्लब्स इत्यादि। बस संख्याओं को संग्रहित करना उनके लिए उपयोग नहीं किया जाना चाहिए! ;) –

+0

क्या आप वीडियो के लिंक को अपडेट कर सकते हैं यदि यह अभी भी कहीं भी उपलब्ध है? – Stefan

2

जबकि आप मैड्रिडस का उपयोग हडोप के साथ कर सकते हैं, ऐसा लगता है कि आप जो कर रहे हैं वह ग्रिड/जॉब शेड्यूलर जैसे Condor या Sun Grid Engine के लिए बेहतर हो सकता है। हैडोप कुछ ऐसा करने के लिए अधिक अनुकूल है जहां आप एक एकल (बहुत बड़ा) इनपुट लेते हैं, इसे अपने कार्यकर्ता मशीनों के लिए प्रक्रियाओं में विभाजित करने के लिए विभाजित करते हैं, और उसके बाद आउटपुट उत्पन्न करने के लिए इसे कम करते हैं।

+1

आप सही है कि Hadoop मन में "बड़े डेटा" समस्या के साथ बनाया गया था रहे हैं। हडोप के बारे में यह क्या है जो इसे सिमुलेशन के लिए अनुपयुक्त बनाता है? –

0

के बाद से आप पहले से ही जावा का उपयोग कर रहे हैं, मैं GridGain पर एक नज़र है, जो मुझे लगता है कि, विशेष रूप से अच्छी तरह से अपनी समस्या के लिए अनुकूल है पूरे करने की सलाह।

3

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

मैं बात की इस तरह के लिए Gearman (http://gearman.org/) की तरह।

0

सीधे शब्दों में कहा, हालांकि Hadoop आपकी समस्या यहाँ उद्देश्य के लिए अपने नहीं सही उपकरण का समाधान हो सकता है।