बड़े पैमाने पर डेटा प्रसंस्करण Hbase बनाम Cassandra [बंद]


84

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

जबकि दोनों एक ही कुंजी / मूल्य भंडारण हैं और दोनों हैं (कैसंड्रा हाल ही में) Hadoop लेयर तब बड़े डेटा पर प्रोसेसिंग / विश्लेषण की आवश्यकता होने पर Hadoop को एक बेहतर उम्मीदवार बनाता है।

मुझे http://ria101.wordpress.com/2010/02/24/hbase-vs-cassandra-why-we-moved/ पर दोनों के बारे में अच्छी जानकारी मिली

लेकिन मैं अभी भी Hbase के ठोस लाभ के लिए देख रहा हूँ।

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

जवाबों:


91

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

होने के बाद, मैं HBase कमल एंड्रयू पर्पल को नीचा दिखाऊंगा और अपने कुछ अनुभव जोड़ूंगा:

  • HBase बड़े उत्पादन वातावरण (1000 नोड्स) में है, हालांकि वह अभी भी कैसेंड्रा के ~ 400 नोड के बॉलपार्क में है, इसलिए इसका वास्तव में एक मामूली अंतर है।

  • HBase और कैसांद्रा दोनों ही समूहों / डेटासेंटर्स के बीच प्रतिकृति का समर्थन करते हैं। मेरा मानना ​​है कि HBase उपयोगकर्ता के लिए अधिक उजागर करता है इसलिए यह अधिक जटिल प्रतीत होता है लेकिन फिर आपको अधिक लचीलापन भी मिलता है।

  • यदि मजबूत स्थिरता आपके आवेदन की जरूरत है तो HBase एक बेहतर फिट होने की संभावना है। यह जमीन के अनुरूप बनाया गया है। उदाहरण के लिए यह परमाणु काउंटरों के सरल कार्यान्वयन के लिए अनुमति देता है (मुझे लगता है कि कैसंड्रा बस उन्हें मिला) और साथ ही जाँच और संचालन भी।

  • लिखने का प्रदर्शन महान है, जो मुझे समझ में आता है कि फेसबुक अपने मैसेंजर के लिए HBase के साथ चला गया था।

  • मैं कैसेंड्रा के आदेशित विभाजनकर्ता की वर्तमान स्थिति के बारे में निश्चित नहीं हूं, लेकिन अतीत में इसे मैनुअल रीबैलेंसिंग की आवश्यकता थी। HBase यदि आप चाहते हैं कि आप के लिए संभालती है। आदेश दिया गया विभाजनकर्ता Hadoop शैली प्रसंस्करण के लिए महत्वपूर्ण है।

  • कैसंड्रा और HBase दोनों जटिल हैं, कैसंड्रा बस इसे बेहतर तरीके से छुपाता है। HBase अपने भंडारण के लिए HDFS का उपयोग करके इसे और अधिक उजागर करता है, यदि आप कोडबेस को देखते हैं तो कैसंड्रा बस स्तरित है। यदि आप डायनमो और बिगटेबल पेपरों की तुलना करते हैं तो आप देख सकते हैं कि कैसंड्रा के संचालन का सिद्धांत वास्तव में अधिक जटिल है।

  • HBase में अधिक यूनिट परीक्षण FWIW है।

  • सभी कैसंड्रा आरपीसी थ्रिफ्ट है, HBase में एक थ्रिफ्ट, REST और देशी जावा है। थ्रिफ्ट और रीस्ट केवल कुल क्लाइंट एपीआई का एक सबसेट प्रस्तुत करते हैं, लेकिन यदि आप शुद्ध गति चाहते हैं तो मूल जावा क्लाइंट है।

  • वहाँ सहकर्मी से सहकर्मी और स्वामी दोनों को दास बनाने के फायदे हैं। मास्टर - दास सेटअप आम तौर पर डिबग करना आसान बनाता है और काफी जटिलता को कम करता है।

  • HBase केवल पारंपरिक HDFS से बंधा नहीं है, आप अपनी आवश्यकताओं के आधार पर अपने अंतर्निहित भंडारण को बदल सकते हैं। मैपआर काफी दिलचस्प लगता है और मैंने अच्छी चीजें सुनी हैं, हालांकि मैंने खुद इसका इस्तेमाल नहीं किया है।


117

कैसंड्रा डेवलपर के रूप में, मैं प्रश्न के दूसरे पक्ष का जवाब देने में बेहतर हूं:

  • कैसंड्रा बेहतर तराजू। कैसंड्रा को एक क्लस्टर में 400 से अधिक नोड्स के पैमाने के लिए जाना जाता है ; जब फेसबुक ने मैसेजिंग को HBase के शीर्ष पर तैनात किया तो उन्हें इसे 100-नोड HBase सब-क्लस्टर्स में शार्द करना पड़ा ।
  • कैसंड्रा सैकड़ों, यहां तक ​​कि हजारों कॉलमफ़ैमिली का समर्थन करता है। " HBase वर्तमान में दो या तीन स्तंभ परिवारों के ऊपर कुछ भी अच्छा नहीं करता है ।"
  • बिना "विशेष" नोड्स या प्रक्रियाओं के साथ एक पूरी तरह से वितरित प्रणाली के रूप में , कैसेंड्रा को स्थापित करना और संचालित करना आसान है, समस्या निवारण के लिए आसान, और अधिक मजबूत।
  • मल्टी-मास्टर प्रतिकृति के लिए कैसेंड्रा के समर्थन का मतलब है कि न केवल आपको कई डेटाटेकरों की भौगोलिक शक्ति मिलती है - भौगोलिक अतिरेक, स्थानीय विलंबता - लेकिन आप रियलटाइम और विश्लेषणात्मक वर्कलोड को भी अलग-अलग समूहों में विभाजित कर सकते हैं , उनके बीच रीयलटाइम, द्विदिश प्रतिकृति के साथ । यदि आप उन वर्कलोड को अलग नहीं करते हैं तो वे शानदार तरीके से भाग लेंगे।
  • क्योंकि प्रत्येक कैसंड्रा नोड अपने स्वयं के स्थानीय भंडारण का प्रबंधन करता है, कैसंड्रा के पास पर्याप्त प्रदर्शन लाभ है जो कि काफी कम होने की संभावना नहीं है। (उदाहरण के लिए, कैसंड्रा को अलग डिवाइस पर रखने के लिए यह मानक अभ्यास है, ताकि वह अपने अनुक्रमिक पढ़े गए अनुरोधों से यादृच्छिक i / o द्वारा बिना लिखे लिख सके।)
  • कैसंड्रा आपको यह चुनने की अनुमति देता है कि आप कितना मजबूत चाहते हैं कि इसे प्रति-ऑपरेशन के आधार पर स्थिरता की आवश्यकता हो। कभी-कभी यह गलत समझा जाता है क्योंकि "कैसेंड्रा आपको मजबूत स्थिरता नहीं देता है," लेकिन यह गलत है।
  • कैसेंड्रा रैंडमपार्टिशनर के साथ-साथ अधिक बिगटेबल-जैसे ऑर्डरडिपार्टिशनर प्रदान करता है। रैंडमपार्टिशनर को गर्म स्थानों से बहुत कम खतरा होता है।
  • कैसेंड्रा मेम्के की तुलना में प्रदर्शन के साथ या ऑफ-हीप कैशिंग की पेशकश करता है, लेकिन कैश स्थिरता समस्याओं या अतिरिक्त चलती भागों की आवश्यकता की जटिलता के बिना
  • गैर-जावा क्लाइंट दूसरे दर्जे के नागरिक नहीं हैं

मेरी जानकारी के लिए, मुख्य लाभ HBase के पास अभी (HBase 0.90.4 और Cassandra 0.8.4) है कि Cassandra अभी तक पारदर्शी डेटा संपीड़न का समर्थन नहीं करता है। (यह अक्टूबर की शुरुआत में कैसांद्रा 1.0 के लिए जोड़ा गया है , लेकिन आज जो HBase के लिए एक वास्तविक लाभ है।) Haseop बैच प्रसंस्करण द्वारा किए गए रेंज स्कैन के प्रकार के लिए HBase को बेहतर रूप से अनुकूलित किया जा सकता है।

कुछ चीजें ऐसी भी हैं जो जरूरी नहीं कि बेहतर हों, या बदतर हों, बस अलग हों। HBase बिगटेबल डेटा मॉडल का अधिक सख्ती से पालन करता है, जहां प्रत्येक कॉलम को स्पष्ट रूप से संस्करणित किया जाता है। कैसंड्रा संस्करण को छोड़ देता है, और इसके बजाय सुपरकोल्यूम जोड़ता है।

उम्मीद है की वो मदद करदे!


13
मुझे पूरा यकीन है कि फेसबुक अपने मॉड्यूलर सॉफ्टवेयर स्टैक से संबंधित अन्य कारणों के लिए 100 नोड HBAse समूहों के पार है। हाल ही में टॉक से लिप्डकॉन ने टोडरेडा में 1PT 1000 नोड HBase क्लस्टर्स का उल्लेख किया और मैंने 700+ नोड HBase क्लस्टर्स का उल्लेख किया है।
cftarnas

1
अच्छी बात। यह कुछ वर्कलोड-विशिष्ट भी हो सकता है।
जलेबिस

1
तो ऊपर कई Cassandra लाभ। लेकिन फेसबुक ने आखिरकार कैसंड्रा के बजाय HBase को क्यों चुना !?
इवान वोरोशिलिन

5
मैसेजिंग टीम के (ए) लोगों का एक संयोजन कैसेंड्रा की स्थिरता मॉडल के पहले से हीडो और HBase से परिचित है, और (सी) अपाचे कैसेंड्रा समुदाय के साथ मदद के लिए नहीं पहुंच रहा है (बी)। अभी हाल ही में, Instagram और Parse जैसे facebook डिवीजनों ने Cassandra: planetcassandra.org/blog/post/… planetcassandra.org/blog/post/…
jbellis

23

100 नोड hBase क्लस्टर का उपयोग करने का कारण यह नहीं है कि HBase बड़े आकार के पैमाने पर नहीं है। इसका कारण यह है कि अपनी पूरी सेवा को नीचे लाए बिना रोलिंग फैशन पर hBase / HDFS सॉफ़्टवेयर अपग्रेड करना आसान है। एक और कारण पूरी सेवा के लिए एक सिंगल नेमोड को SPOF होने से रोकना है। इसके अलावा, HBase का उपयोग विभिन्न सेवाओं (न केवल FB संदेशों) के लिए किया जा रहा है और यह 100-नोड पॉड दृष्टिकोण के आधार पर कई HBase क्लस्टर स्थापित करने के लिए कुकी-कटर दृष्टिकोण के लिए विवेकपूर्ण है। 100 नंबर एडहॉक है, हमने इस बात पर ध्यान नहीं दिया है कि 100 इष्टतम है या नहीं।

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