2015-03-17 13 views
6

पर मुझे अपनी पसंद की पुष्टि करने के लिए कुछ मदद चाहिए ... और यह जानने के लिए कि क्या आप मुझे कुछ जानकारी दे सकते हैं। मेरा स्टोरेज डेटाबेस कैसंड्रा के साथ टाइटन डीबी है। मेरे पास एक बहुत बड़ा ग्राफ है। मेरा लक्ष्य बाद में ग्राफ पर Mllib का उपयोग करना है।Gremlin - Giraph - GraphX? TitanDb

मेरा पहला विचार: ग्राफिक्स के साथ टाइटन का उपयोग करें, लेकिन मुझे कुछ भी नहीं मिला या विकास में प्रगति पर ... TinkerPop अभी तक तैयार नहीं है। तो मुझे गिराफ की ओर देखो। टिंकरपॉप, टाइटन टिंकरपॉप से ​​रेक्सस्टर के साथ संवाद कर सकते हैं।

मेरा प्रश्न है: गिराफ का उपयोग करने के लिए क्या फायदे हैं? Gremlin एक ही सोच ऐसा लगता है और वितरित किया जाता है।

मुझे समझाने के लिए बहुत बहुत धन्यवाद। मुझे लगता है कि मैं वास्तव में Gremlin और Giraph (या ग्राफएक्स) के बीच के अंतर को समझ नहीं पा रहा हूं।

एक अच्छा दिन है।

+0

मानक टाइटन-1.0.0-हैडोप 1 वितरण में फ़ाइल को पढ़ने- cassandra.properties नोट करें; इसमें "स्पार्कग्राफ कंप्यूटर कॉन्फ़िगरेशन" शामिल है – arivero

उत्तर

8

दिलचस्प सवाल। मैं एक ही ट्रैक पर हूं।

एमएलबीब के बारे में आपका पहला प्रश्न। मुझे लगता है कि आप Apache Spark MLlib, अपाचे स्पार्क के शीर्ष पर मशीन लर्निंग (एमएल) कार्यान्वयन का मतलब है।तो मेरा निष्कर्ष यह है: आप अपने Titan/Cassandra आधारित ग्राफ़ डेटाबेस में डेटा का उपयोग करके क्लस्टरिंग और वर्गीकरण जैसे उद्देश्यों के लिए एमएल एल्गोरिदम चलाने के लिए चाहते हैं। कृपया ध्यान दें कि आप अपने टाइटन/कैसंड्रा ग्राफ डेटाबेस के शीर्ष पर क्लस्टरिंग जैसी चीजों को करने के लिए स्पिडी द्वारा वर्णित पेज रैंक जैसे ग्राफ प्रोसेसिंग एल्गोरिदम का भी उपयोग कर सकते हैं। दूसरे शब्दों में: जब आपका प्रारंभिक बिंदु ग्राफ डेटाबेस होता है तो आपको क्लस्टरिंग करने के लिए एमएल की आवश्यकता नहीं होती है।

अपाचे स्पार्क MLlib, भविष्य सबूत और व्यापक रूप से समर्थित उनके सबसे हाल घोषणाएं नई एमएल एल्गोरिदम के बारे में किया गया प्रतीत हो रहा है, हालांकि Apache Mahout, एक और अपाचे एमएल परियोजना, समर्थित एमएल एल्गोरिदम की राशि के संबंध और अधिक परिपक्व है। अपाचे महाउट ने अपाचे स्पार्क को अपनी डेटा स्टोरेज परत के रूप में भी अपनाया है, इसलिए मैं इस पोस्ट में इसका उल्लेख करता हूं। अपाचे स्पार्क ऑफ़र मेमोरी कंप्यूटिंग के अलावा, मशीन सीखने के लिए उल्लिखित एमएलआईबीबी, Spark SQL स्पार्क, GraphX पर Hive जैसा है, जो एक ग्राफ प्रोसेसिंग सिस्टम है जैसा कि स्पिडी और Spark Streaming स्ट्रीमिंग डेटा की प्रोसेसिंग के लिए समझाया गया है।

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

Apache Giraph एक ग्राफ प्रसंस्करण टूलसेट भी है, जो अपाचे स्पार्क ग्राफ़एक्स के समतुल्य कार्यात्मक है। अपाचे गिरफ डेटा स्टोरेज परत के रूप में हैडोप का उपयोग करता है। आप टाइटन/कैसंद्रा का उपयोग कर रहे हैं ताकि जब आप अपाचे गिरफ को अपने समाधान के रूप में चुनते हैं तो आप शायद डेटा माइग्रेशन कार्यों को दर्ज करेंगे। दूसरा, आपने एमएलआईबीआईबी का उपयोग करके एमएल के संबंध में एक प्रश्न के साथ अपनी पोस्ट शुरू की और अपाचे गिरफ एमएल समाधान नहीं है।

गिरफ और ग्रीमलिन के बारे में आपका निष्कर्ष सही नहीं है: वे समान नहीं हैं हालांकि दोनों ग्राफ डेटाबेस का उपयोग कर रहे हैं। गिराफ ग्राफ प्रसंस्करण के लिए एक समाधान है जैसा कि स्पिडी समझाया गया है। Giraph का उपयोग करके आप पेज रैंक जैसे ग्राफ विश्लेषण एल्गोरिदम निष्पादित कर सकते हैं, उदा। जिनके पास सबसे अनुयायियों हैं, जबकि Gremlin ट्रैवर्सिंग के लिए है। कशेरुक और किनारों के गुणों के परिणाम सेट प्राप्त करने वाली संस्थाओं (शिखर) के बीच जटिल संबंधों (किनारों) का उपयोग करके ग्राफ डेटाबेस को कतारबद्ध करें।

9
  • Gremlin एक ग्राफ ट्रैवर्सल भाषा है जबकि गिराफ या ग्राफिक्स ग्राफ़ प्रोसेसिंग सिस्टम है।

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

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

  • ग्राफ़ डेटाबेस आपका व्यक्ति है जब आपके एप्लिकेशन को अक्सर डेटा पूछताछ की आवश्यकता होती है। जैसे एक फेसबुक के प्रकार के लिए, एक उपयोगकर्ता को दिया, अपने सभी दोस्तों को वापस। यह ग्राफ डेटाबेस के लिए उपयुक्त है और आप क्वेरी करने के लिए gremlin का उपयोग कर सकते हैं।

  • अब, यदि आप फेसबुक में प्रत्येक उपयोगकर्ता के रैंक की गणना करना चाहते हैं, तो आपको पूरे ग्राफ पर पेजरैंक एल्गोरिदम चलाने की आवश्यकता है। दूसरे शब्दों में, पेजरैंक एल्गोरिदम आपके पूरे ग्राफ को संसाधित करता है और आपको मानचित्र देता है। यह ग्राफ प्रसंस्करण प्रणाली के लिए उपयुक्त आवेदन है। हां, आप ऐसा करने के लिए gremlin ढांचे का उपयोग कर प्रश्न लिख सकते हैं लेकिन 1. यह giraph या graphx द्वारा उपयोग किए जाने वाले अंतर्निहित pregel मॉडल के रूप में उपयोगकर्ता मित्रता के रूप में नहीं होगा। 2. यह कुशल नहीं होगा।

संक्षेप में, यह वास्तव में आपके आवेदन पर निर्भर करता है। अगर आपको लगता है कि आपका आवेदन क्वेरी की तरह है। किसी भी ग्राफ प्रोसेसिंग सिस्टम में लोडिंग को लोड न करें। यदि आपको लगता है कि आपका एप्लिकेशन पेजरैंक की तरह है (जिसके लिए पूरे ग्राफ को संसाधित करने की आवश्यकता है) और आपके पास एक बड़ा ग्राफ (कम से कम 1 एम किनारों) है। जिराफ या ग्राफिक्स के लिए जाओ।

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

पेज। जीराफ ग्राफिक्स में एक इनपुट प्रारूप जोड़ा जाना अच्छा होगा जो टाइटन में संग्रहीत डेटा स्वीकार करता है।

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