अपाचे काफ्का बनाम अपाचे तूफान


102

अपाचे काफ्का: वितरित संदेश प्रणाली
अपाचे तूफान: रीयल टाइम संदेश प्रसंस्करण

हम ईवेंट डेटा के प्रसंस्करण के लिए वास्तविक समय डेटा पाइपलाइन में दोनों तकनीकों का उपयोग कैसे कर सकते हैं?

रियल टाइम डेटा पाइपलाइन के संदर्भ में, मुझे लगता है कि यह काम समान है। डेटा पाइपलाइन पर हम दोनों तकनीकों का उपयोग कैसे कर सकते हैं?

जवाबों:


158

आप अपाचे काफ्का को एक वितरित और मजबूत कतार के रूप में उपयोग करते हैं जो उच्च मात्रा डेटा को संभाल सकता है और आपको एक छोर से दूसरे तक संदेश भेजने में सक्षम बनाता है।

तूफान कतार नहीं है। यह एक ऐसी प्रणाली है जिसने वास्तविक समय प्रसंस्करण क्षमताओं को वितरित किया है, जिसका अर्थ है कि आप समानांतर में वास्तविक समय डेटा पर सभी प्रकार के जोड़तोड़ को निष्पादित कर सकते हैं।

इन उपकरणों का सामान्य प्रवाह (जैसा कि मुझे पता है) इस प्रकार है:

वास्तविक समय प्रणाली -> काफ्का -> तूफान -> नोस्कल -> बीआई (वैकल्पिक)

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


धन्यवाद Forhas। यह बहुत मददगार है। एक प्रश्न हम अपाचे काफ्का का उपयोग अपाचे लॉग फ़ाइलों को एकत्र करने के लिए कर सकते हैं या क्या हमें अभी भी ऐसा करने के लिए फ्लूम की आवश्यकता है?
अनंत डूरी

मुझे लगता है कि आप हालांकि इस तरह के प्रवाह से परिचित नहीं हैं। शायद आप अपनी जरूरतों के लिए स्प्लंक (सिर्फ एक अनुमान ..) की जांच कर सकते हैं।
फोर्थ

मैं ग्रेलाग का उपयोग करने और इसे अपाचे काफ्का से जोड़ने की सलाह देता हूं। ग्रेलॉग में पहले से ही काकाफा इनपुट प्लगइन है।
saeid rastak

36

काफ्का और तूफान का एक अलग उद्देश्य है:

काफ्का एक वितरित संदेश दलाल है जो प्रति सेकंड बड़ी मात्रा में संदेशों को संभाल सकता है। यह प्रकाशित-सदस्यता प्रतिमान का उपयोग करता है और विषयों और विभाजन पर निर्भर करता है। दलालों के बीच राज्य को साझा करने और बचाने के लिए काफ्का ज़ुकीपर का उपयोग करता है। इसलिए काफ्का मूल रूप से एक मशीन से दूसरे मशीन में संदेश भेजने के लिए जिम्मेदार है।

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


लेकिन आप उन्हें एक साथ उपयोग कर सकते हैं: उदाहरण के लिए आपका एप्लिकेशन अन्य सर्वरों को डेटा भेजने के लिए काफ्का का उपयोग करता है जो उस पर कुछ गणना करने के लिए तूफान का उपयोग करता है।


32

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

घोषणा ब्लॉग - https://www.confluent.io/blog/introducing-kafka-streams-stream-processing-made-simple/

वर्तमान अपाचे प्रलेखन - https://kafka.apache.org/documentation/streams/

0.11 काफ्का में स्ट्रीम प्रोसेसिंग कार्यक्षमता को आगे बढ़ाया गया था ताकि एक बार शब्दार्थ और लेनदेन उपलब्ध हो सकें।

https://www.confluent.io/blog/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it/


1
तो मूल रूप से अब एक वास्तविक समय प्रणाली सीधे Kafkaas अंत बिंदु और Kafka भंडार उदाहरण के लिए एक DB के साथ संचार करता है?
समस्या

2
हाँ, अब काफ्का में डेटाबेस और अन्य डेटा स्रोतों (syslog, JMS, log files, etc) से बात करने के लिए Kafka Connect शामिल है, और कफ़्का स्ट्रीम स्ट्रीम प्रोसेसिंग (ज्वाइन, ट्रांसफ़ॉर्म, फ़िल्टर, एग्रीगेशन) करने के लिए, और वापस काफ़्का से लिखने के लिए कनेक्ट करें किसी अन्य डेटाबेस या रिपॉजिटरी के लिए।
हंस जेसेरसन

15

यह इस तरह काम करता है

काफ्का - एक रीयलटाइम स्ट्रीम प्रदान करने के लिए

तूफान - उस धारा पर कुछ ऑपरेशन करने के लिए

आप GitHub प्रोजेक्ट https://github.com/abhishekgoel137/kafka-nodejs-d3js पर एक नज़र डाल सकते हैं ।

(डी 3 जी एक ग्राफ-प्रतिनिधित्व पुस्तकालय है)

आदर्श मामला:

Realtime application -> Kafka -> Storm -> NoSQL -> d3js

यह भंडार निम्न पर आधारित है:

Realtime application -> Kafka -> <plain Node.js> -> NoSQL -> d3js

1
अभिषेक, उपरोक्त उत्तर में उल्लिखित लिंक टूट गया है। क्या आप लिंक को अपडेट कर सकते हैं?
अभिजीत गायकवाड़

4

जैसा कि हर एक आपको समझाता है कि अपाचे काफ्का: निरंतर मैसेजिंग कतार है

अपाचे स्टॉर्म: निरंतर प्रसंस्करण उपकरण है

यहाँ इस पहलू में कफ़्का को एपीआई की मदद से एफबी, ट्विटर जैसी किसी भी वेबसाइट से डेटा मिलेगा और उस डेटा को अपाचे स्टॉर्म का उपयोग करके संसाधित किया जाता है और आप संसाधित डेटा को किसी भी डेटाबेस में संग्रहीत कर सकते हैं जिसे आप पसंद करते हैं।

https://github.com/miguno/kafka-storm-starter

बस इसका पालन करें आपको कुछ विचार मिलेगा


3

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


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.