2009-12-16 14 views
9

मैंने हाल ही में Hadoop के साथ एक खेल खेला था और मैपरेडस नौकरियों के शेड्यूलिंग, प्रबंधन और रिपोर्टिंग से प्रभावित था। ऐसा लगता है कि डेवलपर को अपनी नौकरियों के कार्यान्वयन पर ध्यान केंद्रित करने की इजाजत दी गई है, जिससे नई नौकरियों का वितरण और निष्पादन काफी निर्बाध हो गया है।वितरित नौकरी शेड्यूलिंग, प्रबंधन, और रिपोर्टिंग

मुझे आश्चर्य है कि क्या जावा डोमेन में ऐसी नौकरियों के वितरित निष्पादन के लिए कुछ भी मौजूद है जो मैपरेडस समस्याओं के रूप में आसानी से व्यक्त नहीं किए जाते हैं? उदाहरण के लिए:

  • नौकरियां जिनके लिए कार्य समन्वय और सिंक्रनाइज़ेशन की आवश्यकता होती है। उदाहरण के लिए, वे कार्यों की अनुक्रमिक निष्पादन शामिल हो सकता है फिर भी यह समवर्ती कुछ कार्य निष्पादित करने के लिए संभव है:

       .-- B --. 
         .--A --|  |--. 
         |  '-- C --' | 
    Start --|     |-- Done 
         |     | 
         '--D -------------' 
    
  • सीपीयू से संवेदनशील कार्यों कि आप वितरित करना चाहते हैं, लेकिन किसी भी आउटपुट प्रदान करते हैं कम करने के लिए नहीं है - छवि रूपांतरण/उदाहरण के लिए आकार बदलना।

तो क्या जावा फ्रेमवर्क/प्लेटफार्म है जो ऐसे वितरित कंप्यूटिंग पर्यावरण प्रदान करता है? या इस तरह की चीज हैडोप का उपयोग करके स्वीकार्य/प्राप्त करने योग्य है - और यदि इस तरह के नौकरियों के लिए कोई पैटर्न/दिशानिर्देश हैं?

उत्तर

3

मुझे तब से Spring Batch और Spring Batch Integration मिल गया है जो मेरी कई आवश्यकताओं को संबोधित करने के लिए दिखाई देता है। मैं तुम्हे बता दूंगा की मै कैसे मिलुंगा।

+0

स्प्रिंग बैच हडोप की तरह क्लस्टर में समानांतर कार्य करने में कैसे मदद करता है? – Marquez

0

मुझे लगता है कि आप सीपीयू गहन कार्यों के लिए वर्कफ़्लो इंजन की तलाश में हैं ("वैज्ञानिक वर्कफ़्लो" भी जानते हैं, उदाहरण के लिए http://www.extreme.indiana.edu/swf-survey)। लेकिन मुझे यकीन नहीं है कि आप इसे कैसे वितरित करना चाहते हैं। आम तौर पर सभी वर्कफ़्लो इंजनों में "विफलता का एक बिंदु" होता है।

0

मुझे विश्वास है कि नक्शा कम करने वाली समस्याओं के रूप में कुछ समस्याएं व्यक्त की जा सकती हैं।

उन समस्याओं के लिए जिन्हें आप संरचना में फिट करने के लिए संशोधित नहीं कर सकते हैं, आप जावा के ExecutorService का उपयोग करके अपना स्वयं का सेट अप देख सकते हैं। लेकिन यह एक जेवीएम तक ही सीमित होगा और यह काफी कम स्तर होगा। हालांकि यह आसान समन्वय और सिंक्रनाइज़ेशन के लिए अनुमति देगा।

2

Quartz पर एक नज़र डालें। मुझे लगता है कि यह नौकरियों को चलाने के लिए दूरस्थ रूप से नौकरियों के प्रबंधन और कई मशीनों को क्लस्टर करने जैसी चीजों का समर्थन करता है।

+0

+1 उत्कृष्ट ढांचे – JamesC

0

ProActive Scheduler आपकी आवश्यकताओं को पूरा करने लगता है, विशेष रूप से जटिल कार्यप्रवाह जिन्हें आपने कार्य समन्वय के साथ उल्लेख किया है। यह खुला स्रोत और जावा आधारित है। तुम कुछ भी, Hadoop नौकरियों, स्क्रिप्ट, जावा कोड, चलाने के लिए ...

अस्वीकरण उपयोग कर सकते हैं: मैं company के लिए काम के पीछे यह

0

Redisson ढांचे का प्रयास करें। यह java.util.concurrent.Callable और java.lang.Runnable कार्यों को निष्पादित करने और शेड्यूल करने के लिए आसान एपीआई प्रदान करता है। वितरित Executor service और Scheduler service

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