2010-04-29 11 views
14

क्या कोई बता सकता है कि मैपरेडस कैसंड्रा के साथ कैसे काम करता है .6? मैंने शब्द गणना उदाहरण के माध्यम से पढ़ा है, लेकिन मैं "क्लाइंट" अंत बनाम कैसंड्रा अंत में क्या हो रहा है, इसका काफी पालन नहीं करता हूं।कैसंड्रा के मानचित्र का उपयोग कैसे करें या w/o सुअर के साथ कम करें?

https://svn.apache.org/repos/asf/cassandra/trunk/contrib/word_count/

उदाहरण के लिए, मान लीजिए कि मैं पायथन और Pycassa उपयोग कर रहा हूँ चलो, मैं एक नया नक्शा में कैसे लोड समारोह को कम करने, और फिर इसे कहते हैं? क्या मेरा नक्शा कम करने के लिए काम जावा है जो कैसंड्रा सर्वर पर स्थापित है? यदि हां, तो मैं इसे पिकासा से कैसे कहूं?

पिग का यह सब आसान बनाने का भी उल्लेख है, लेकिन मैं एक पूर्ण हडोप नोब हूं, इसलिए वास्तव में मदद नहीं मिली।

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

उत्तर

10

जो मैंने सुना है (और here से), जिस तरह से एक डेवलपर मैपरेडस प्रोग्राम लिखता है जो डेटा स्रोत के रूप में कैसंड्रा का उपयोग करता है। आप एक नियमित मैपराइडस प्रोग्राम लिखते हैं (उदाहरण जो आपने लिंक किया है वह शुद्ध-जावा संस्करण के लिए है) और जो जार अब उपलब्ध हैं, वे एक कस्टम इनपुटपुट प्रदान करते हैं जो इनपुट स्रोत को कैसंद्रा (डिफ़ॉल्ट के बजाय, हैडोप) की अनुमति देता है।

यदि आप पाइकासा का उपयोग कर रहे हैं तो मैं कहूंगा कि आप तब तक भाग्य से बाहर हैं जब तक कि (1) उस परियोजना के रखरखाव MapReduce के लिए समर्थन जोड़ता है या (2) आप कुछ पायथन कार्यों को एक साथ फेंक देते हैं जो जावा मैपरेडस लिखते हैं कार्यक्रम और इसे चलाओ। उत्तरार्द्ध निश्चित रूप से हैक का थोड़ा सा है लेकिन आपको ऊपर ले जाएगा और जा रहा है।

+1

तो कैसंड्रा नोड नक्शा कम नहीं कर रहे हैं, जहां भी आपका जावा चल रहा था? – UltimateBrent

+0

हां, हैडोप जॉबट्रैकर्स एम/आर नौकरियां चलाते हैं। – jbellis

+1

तो नक्शा का मुद्दा यह नहीं है कि इसे वितरित किया जाता है? यदि यह कैसंड्रा नोड्स पर नहीं चलता है, तो बिंदु क्या है? – UltimateBrent

1

कैसंड्रा से प्रत्यक्ष इनपुट फ़ॉर्मेट का उपयोग करने की जीत यह है कि यह डेटा को कुशलतापूर्वक स्ट्रीम करता है, जो कि एक बहुत बड़ी जीत है। प्रत्येक इनपुट स्प्लिट में टोकन की एक श्रृंखला शामिल होती है और डिस्क को अपनी पूर्ण बैंडविड्थ पर रोल करता है: कोई मांग नहीं, कोई जटिल क्वेरीिंग नहीं। मुझे नहीं लगता कि यह इलाके के बारे में जानता है - प्रत्येक टास्कट्रैक को एक ही नोड पर एक कैसंड्रा प्रक्रिया से इनपुट विभाजन पसंद करते हैं।

आप स्ट्रीम विधि के साथ सुअर का उपयोग एक हैक के रूप में करने का प्रयास कर सकते हैं जब तक कि अधिक प्रत्यक्ष हैडऑप स्ट्रीमिंग समर्थन न हो।

1

यह इलाके के बारे में जानता है; Cassandra InputFormat डेटा इलाके को सुरक्षित रखने के लिए getLocations() को ओवरराइड करता है

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