2015-07-09 18 views
5

के साथ लैम्ब्डा आर्किटेक्चर मैं निम्नलिखित टूल्स का उपयोग करके लैम्ब्डा आर्किटेक्चर को कार्यान्वित करने की कोशिश कर रहा हूं: अपाचे काफ्का सभी डेटापॉइंट्स प्राप्त करने के लिए, बैच प्रोसेसिंग (बिग डेटा) के लिए स्पार्क, रीयल टाइम (फास्ट डेटा) और कैसंड्रा के लिए स्पार्क स्ट्रीमिंग परिणामों को स्टोर करने के लिए।अपाचे स्पार्क

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

तो, मैं क्या पूछना चाहेंगे है:

  • यह वह जगह है लैम्ब्डा वास्तुकला लागू करने के लिए एक अच्छा दृष्टिकोण? या इसके बजाय हैडोप और तूफान का उपयोग करना चाहिए? (मुझे बैच प्रोसेसिंग, मानचित्र कम करने के लिए काफ्का और अपाचे स्पार्क का उपयोग करने वाले लोगों के बारे में जानकारी नहीं मिल सकती है)
  • क्या उपयोगकर्ता सत्र समस्या को हल करने के लिए कोई बेहतर तरीका है?

धन्यवाद।

उत्तर

4

यह एक अच्छा तरीका है। गति और बैच परतों के लिए स्पार्क का उपयोग करके आप एक बार तर्क लिख सकते हैं और दोनों संदर्भों में इसका उपयोग कर सकते हैं।

अपने सत्र मुद्दे के बारे में, क्योंकि आप बैच मोड में ऐसा कर रहे हैं, क्यों न केवल कफका से डेटा को एचडीएफएस या कैसंड्रा में डालें और फिर पूर्ण सत्रों के लिए प्रश्न लिखें? ऐसा करने के लिए आप स्पार्क स्ट्रीमिंग के "सीधा कनेक्शन" का उपयोग कर सकते हैं।

0

मैं वर्तमान में एक ही कार्यान्वयन पर काम कर रहा हूं। मैं काफ्का, एचबीएस, स्पार्क और स्पार्क स्ट्रीमिंग का उपयोग करता हूं।

इन तकनीकों का उपयोग करते समय विचार करने के लिए बहुत सी चीजें हैं और शायद कोई आसान जवाब नहीं है।

स्पार्क स्ट्रीमिंग के मुख्य बिंदु यह है कि स्ट्रीम स्ट्रीम के लिए उपभोग किए गए डेटा के क्रम में गड़बड़ करने के लिए आपको धारा डेटा के लिए 100 एमएस की न्यूनतम विलंबता मिलती है, साथ ही मेरे लिए एक और बड़ी पकड़ भी मिलती है। संभावित stragglers के संयोजन के साथ आत्मविश्वास की पूरी कमी में परिणाम है कि मैं कम से कम आंशिक आदेश (कम से कम मेरे ज्ञान के लिए) में डेटा संसाधित कर रहा हूँ। तूफान इन समस्याओं को हल करता है, लेकिन मैं इसकी गारंटी नहीं दे सकता क्योंकि मैंने इसका उपयोग नहीं किया है।

बैच परत के संदर्भ में, स्पार्क मैपरेडस से निश्चित रूप से बेहतर है क्योंकि यह तेज़ और अधिक लचीला है।

तब बैच और स्पीड के बीच सिंक्रनाइज़ करने के साथ समस्या आती है यह जानने के मामले में कि बैच नौकरी का डेटा गति को रोकता है। मैं अपनी गति परत को उस समस्या को हल करता हूं जो उस पर प्रोसेस करने से पहले एचबीएस में डेटा डालता है।

यह केवल यादृच्छिक बिंदुओं का एक समूह है, मुझे आशा है कि उनमें से कुछ मदद करें।

0

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

आपको किसी विषय से सत्र के लिए सभी डेटा फिर से उपभोग करने की आवश्यकता नहीं है इससे पहले कि आप इसे संसाधित करने में सक्षम हो जाएं कि आप इसके साथ क्या कर रहे हैं (आपकी कमी) एक सहयोगी संचालन है । भले ही यह सहयोगी नहीं है (अद्वितीय उपयोगकर्ताओं की तरह) आप अभी भी एक बेहद सटीक अनुमान के साथ ठीक हो सकते हैं जिसे हाइपर लॉग लॉग की तरह गणना की जा सकती है। आप शायद कुछ प्रकार के राज्यव्यापी एकत्रीकरण का उपयोग करेंगे। स्पार्क में आप या तो UpdateStateByKey का उपयोग कर सकते हैं, या अधिमानतः, MapWithState फ़ंक्शन।

आप विशेष रूप से प्रौद्योगिकी और उपयोग के मामलों तुम उल्लेख पर ठोस उदाहरण के लिए देख रहे हैं, मैं तुम्हें Pluralsight पाठ्यक्रम जहां आप इसके बारे में सब जानने के लिए और अभ्यास यह Applying the Lambda Architecture with Spark, Kafka, and Cassandra

मैं भी नोट करेंगे कर सकते हैं की ओर इशारा करेगा कि यदि आप जो कर रहे हैं वह काफी सीधे आगे है, और क्योंकि आप पहले से ही काफ्का का उपयोग कर रहे हैं, तो आप स्ट्रीमिंग के लिए एचडीएफएस दृढ़ता और काफ्का स्ट्रीम के लिए काफ्का कनेक्ट पर विचार करना चाहेंगे। आप कफका स्ट्रीम का उपयोग कफका को सीधे डेटा स्ट्रीम करने के लिए भी कर सकते हैं और कैसंड्रा और लोचदार खोज जैसे कई गंतव्यों में इसे पाइप करने के लिए काफ्का कनेक्ट का उपयोग कर सकते हैं। मैं काफ्का स्ट्रीम का उल्लेख करता हूं क्योंकि इसमें कुछ राज्य को स्मृति में रखने और सरल स्ट्रीमिंग परिचालन करने की क्षमता भी होती है।

शुभकामनाएं!

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