2015-02-22 18 views
8

का उपयोग कर वास्तविक समय लॉग प्रोसेसिंग मैं एक सिस्टम बनाना चाहता हूं जहां मैं वास्तविक समय में लॉग पढ़ सकता हूं, और इसे संसाधित करने के लिए अपाचे स्पार्क का उपयोग कर सकता हूं। मैं उलझन में हूं अगर मुझे स्पार्क स्ट्रीम में लॉग पास करने के लिए कफका या फ्लम जैसे कुछ का उपयोग करना चाहिए या मुझे सॉकेट का उपयोग करके लॉग पास करना चाहिए। मैं स्पार्क स्ट्रीमिंग दस्तावेज- Spark stream example में एक नमूना कार्यक्रम के माध्यम से चला गया है। लेकिन अगर कोई मुझे स्पार्क स्ट्रीम में लॉग पास करने का बेहतर तरीका सुझा सकता है तो मैं आभारी रहूंगा। मेरे लिए एक नया मैदान है।अपाचे स्पार्क स्ट्रीमिंग

उत्तर

4

अपाचे Flume वास्तविक समय में लॉग पढ़ने के लिए मदद मिल सकती है ले सके। फ़्लूम एप्लिकेशन को लॉग संग्रह और परिवहन प्रदान करता है जहां स्पार्क स्ट्रीमिंग का उपयोग आवश्यक जानकारी का विश्लेषण करने के लिए किया जाता है।

1. डाउनलोड अपाचे official site से Flume या से here

2. सेटअप निर्देशों का पालन करें और Flume चलाने निर्देशिका जहां Flume स्थापित किया गया है से Flume-conf.properties.template संशोधित (FLUME_INSTALLATION_PATH \ conf), यहां आपको लॉग स्रोत, चैनल और सिंक (आउटपुट) प्रदान करने की आवश्यकता है। स्थापना के बारे में अधिक जानकारी के लिए here

जो लोग इन पिंग comand से जानकारी खिड़कियां मेजबान पर चल एकत्र करता है और यह एक फाइल करने के लिए लिखते हैं Flume शुरू करने का एक उदाहरण है:

flume-conf.properties

agent.sources = seqGenSrc 
agent.channels = memoryChannel 
agent.sinks = loggerSink 

agent.sources.seqGenSrc.type = exec 
agent.sources.seqGenSrc.shell = powershell -Command 

agent.sources.seqGenSrc.command = for() { ping google.com } 

agent.sources.seqGenSrc.channels = memoryChannel 

agent.sinks.loggerSink.type = file_roll 

agent.sinks.loggerSink.channel = memoryChannel 
agent.sinks.loggerSink.sink.directory = D:\\TMP\\flu\\ 
agent.sinks.loggerSink.serializer = text 
agent.sinks.loggerSink.appendNewline = false 
agent.sinks.loggerSink.rollInterval = 0 

agent.channels.memoryChannel.type = memory 
agent.channels.memoryChannel.capacity = 100 

चलाने के लिए उदाहरण FLUME_INSTALLATION_PATH के पास जाकर अमल

java -Xmx20m -Dlog4j.configuration=file:///%CD%\conf\log4j.properties -cp .\lib\* org.apache.flume.node.Application -f conf\flume-conf.properties -n agent 

या आप अपने जावा एप्लिकेशन को बना सकते हैं जिसमें क्लासपाथ में फ्ल्यूम लाइब्रेरीज़ हैं और org.apache.flume.node पर कॉल करें। संबंधित तर्कों को पार करने वाले एप्लिकेशन से एप्लिकेशन उदाहरण।

लॉग एकत्र करने और परिवहन करने के लिए फ़्लूम कैसे सेट करें?

आप विंडोज़ स्क्रिप्ट आप भी जावा आवेदन (पुट 'जावा path_to_main_class तर्क' फ़ील्ड में) शुरू कर सकते हैं जो स्मार्ट लॉग संग्रह प्रदान करता है की

agent.sources.seqGenSrc.shell = powershell -Command 
agent.sources.seqGenSrc.command = your script here 

बजाय निर्दिष्ट स्थान से सभा लॉग के लिए कुछ स्क्रिप्ट का उपयोग कर सकते हैं। उदाहरण के लिए, यदि फ़ाइल रीयल-टाइम में संशोधित की गई है तो आप अपाचे कॉमन्स आईओ से Tailer का उपयोग कर सकते हैं। लॉग जानकारी को पढ़ने के लिए इस article

3. अपने स्रोत कोड से Flume धारा जाओ और स्पार्क के साथ विश्लेषण के परिवहन के लिए Flume कॉन्फ़िगर करने के लिए। GitHub https://github.com/apache/spark/blob/master/examples/src/main/java/org/apache/spark/examples/streaming/JavaFlumeEventCount.java

1

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

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

तूफान काफ्का एकीकरण के लिए here

के लिए अपाचे स्पार्क काफ्का एकता एक नज़र here

-2

से एक कोड नमूने पर एक नजर डालें यद्यपि यह एक पुराने सवाल है, Databricks से एक लिंक है, जो स्पार्क कई क्षेत्रों पर विचार के साथ लॉग विश्लेषण के लिए कदम लेख द्वारा एक बड़ा कदम है पोस्टिंग।

https://databricks.gitbooks.io/databricks-spark-reference-applications/content/logs_analyzer/index.html

आशा इस मदद करता है।

+0

कृपया – Robert

+0

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

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