2011-01-26 11 views
6

मैं जावा पृष्ठभूमि से आ रहा हूं और एक सीपीयू बाध्य समस्या है जिसे मैं प्रदर्शन में सुधार करने के लिए समानांतर करने की कोशिश कर रहा हूं। मैंने मॉड्यूलर तरीके से प्रदर्शन करने के लिए अपना कोड तोड़ दिया है ताकि इसे वितरित और समानांतर तरीके से चलाया जा सके (उम्मीद है)।संहिता निष्पादन के लिए समांतरता/क्लस्टर विकल्प

@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW) 
public void runMyJob(List<String> some params){ 
    doComplexEnoughStuffAndWriteToMysqlDB(); 
} 

अब, मैं इस समस्या parallelizing के लिए निम्न विकल्पों के बारे में सोच कर दिया है और मैं इस क्षेत्र में लोगों के विचारों/अनुभव करना चाहते हैं।

विकल्प मैं वर्तमान की सोच रहा हूँ:

1) का प्रयोग करें जावा ईई (जैसे JBoss) क्लस्टरिंग और MessageDrivenBeans। एमडीबी क्लस्टर में दास नोड्स पर हैं। प्रत्येक एमडीबी एक ऐसी घटना ले सकता है जो उपरोक्त के रूप में नौकरी छोड़ देता है। AFAIK जावा ईई एमडीबी ऐप सर्वर द्वारा बहुप्रचारित हैं इसलिए उम्मीद है कि यह मल्टीकोरों का लाभ भी ले सकता है। इस प्रकार यह लंबवत और क्षैतिज स्केलेबल होना चाहिए।

2) मैं हडोप और मानचित्र कम करने जैसे कुछ का उपयोग कर देख सकता था। मेरे यहां की चिंताएं यह है कि मेरा जॉब प्रसंस्करण तर्क वास्तव में काफी उच्च स्तर है इसलिए मुझे यकीन नहीं है कि मानचित्र को कम करने के लिए अनुवाद करने योग्य कैसे है। इसके अलावा, मैं एमआर के लिए कुल नौसिखिया हूँ।

3) मैं स्कैला की तरह कुछ देख सकता हूं जो मुझे विश्वास है कि समवर्ती प्रोग्रामिंग को बहुत आसान बनाता है। हालांकि, यह लंबवत स्केलेबल है, यह क्लस्टर/क्षैतिज स्केलेबल समाधान नहीं है।

वैसे भी, आशा है कि जो कुछ भी समझ में आता है और प्रदान की गई किसी भी मदद के लिए आपको बहुत धन्यवाद।

+1

अक्का स्काला के लिए मजबूत रिमोट अभिनेता क्षमता प्रदान करता है, इसलिए मुझे यकीन नहीं है कि यह कहना उचित है कि स्कैला क्षैतिज रूप से मापनीय नहीं है। (वास्तव में, यहां तक ​​कि कोर स्कैला लाइब्रेरी रिमोट एक्टर्स के लिए कुछ समर्थन प्रदान करती है।) –

+0

हाय रेक्स, धन्यवाद, यह वास्तव में मुझे लगता है कि मुझे लगता है कि मुझे बहुत कुछ पता नहीं है। तो, क्या स्कैला और अक्का के साथ नोड्स में नौकरियों को वितरित करना आसान है? क्या आप इसे जेबॉस क्लस्टर का उपयोग करके कहने की सलाह देंगे? – Brian

+0

मुझे डर है कि मुझे सलाह देने के लिए पर्याप्त जानकारी नहीं है; मुझे बस पता है कि यह एक संभावना है। –

उत्तर

0

जो समाधान आप खोज रहे हैं वह अक्का है। क्लस्टरिंग विकास के तहत एक विशेषता है, और सामान्य रूप से अक्का में शामिल किया जाएगा 2,1

  • बहुत बढ़िया स्काला और जावा एपीआई, अत्यंत पूरा
  • शुद्ध रूप से संदेश आधारित पद्धति, कोई साझा राज्य के साथ
  • दोष प्रतिरोधी और स्केलेबल
  • अत्यंत आसान वितरित करने के लिए नौकरियों

कृपया J2EE से छुटकारा पाने के लिए यदि आप समय पर अभी भी कर रहे हैं। अपने प्रश्न पूछने के लिए अक्का मेलिंग सूची में शामिल होने के लिए आपका बहुत स्वागत है।

0

आपको spark पर एक नज़र रखना चाहिए। यह हालाप के व्यवहार्य विकल्प होने के उद्देश्य से स्कैला में लिखे गए क्लस्टर कंप्यूटिंग फ्रेमवर्क है।

  • इन-मेमोरी संगणना: यह अच्छा कारनामों की एक संख्या है आप कैशिंग की डिग्री को नियंत्रित कर सकते
  • Hadoop इनपुट/आउटपुट अंतर: स्पार्क जैसे सभी Hadoop इनपुट स्रोतों से डेटा पढ़ने/लिखने कर सकते हैं HDFS, EC2, आदि
  • की "लचीला वितरित डेटासेट" (आरडीडी) जो = आप सीधे एमआर शैली वर्कलोड के सबसे निष्पादित करने के लिए एक समूह पर समानांतर में के रूप में आप स्थानीय स्तर पर
  • प्राथमिक एपीआई करना होगा की अनुमति देता है स्काला, वैकल्पिक अवधारणा पायथन और जावा एपीआई
  • यह उपयोग करता है अक्का का :)

यदि मैं आपका प्रश्न सही ढंग से समझता हूं, तो स्पार्क आपके विकल्पों को जोड़ देगा 2) और 3)।

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