स्थापित कैसे करें Cassandra Cluster एकाधिक नोड्स पर

⚡ स्मार्ट सारांश

Cassandra Cluster यह क्लस्टर कई नोड्स को एक साथ समूहित करता है ताकि डेटा वितरित हो सके और कोई भी मशीन सारा डेटा अपने पास न रखे। यह पृष्ठ क्लस्टर के घटकों, पार्टिशनर और टोकन रिंग, आवश्यक शर्तें, नोड्स को आपस में जोड़ने वाली कॉन्फ़िगरेशन सेटिंग्स और परिणाम को सत्यापित करने के तरीके के बारे में बताता है।

  • 🧩 Cluster संरचना: नोड्स डेटा सेंटर बनाते हैं, और डेटा सेंटर एक क्लस्टर बनाते हैं जो एक डेटाबेस की तरह व्यवहार करता है।
  • 🎯 विभाजक की भूमिका: पार्टिशन कुंजी का हैश एक टोकन उत्पन्न करता है, और यह टोकन निर्धारित करता है कि कौन सा नोड पंक्ति को संग्रहीत करेगा।
  • 🌱 बीज नोड्स: सीड्स वे संपर्क बिंदु होते हैं जिनसे एक नया नोड सबसे पहले संवाद करता है; वे स्वामी नहीं होते।
  • ⚙️ मुख्य सेटिंग्स: cassandra.yaml में cluster_name, seeds, listen_address और rpc_address को एक समान रूप से सेट किया जाना चाहिए।
  • 🚀 स्टार्टअप ऑर्डर: सबसे पहले एक-एक करके सीड नोड्स शुरू करें, फिर बाकी नोड्स को जोड़ें।
  • सत्यापन: nodetool status में प्रत्येक नोड को लगभग समान स्वामित्व के साथ UN के रूप में सूचीबद्ध किया जाना चाहिए।

व्यवस्था Cassandra Cluster एकाधिक नोड्स पर

एचएमबी क्या है? Cassandra Cluster?

A Cassandra क्लस्टर पूरे में से एक खोल है Cassandra डेटाबेस। Cassandra क्लस्टर में भंडारण इकाइयों की कई अलग-अलग परतें होती हैं, और प्रत्येक परत में दूसरी परत समाहित होती है।

बड़े संगठन जैसे Amazonफेसबुक जैसी कंपनियों को भारी मात्रा में डेटा का प्रबंधन करना होता है। इसलिए ये संगठन इतनी बड़ी मात्रा में डेटा को एक ही मशीन पर स्टोर नहीं कर सकते। ऐसे में वे डेटाबेस का उपयोग करते हैं। Cassandra वितरित वास्तुकला के साथ.

ये संगठन उस विशाल मात्रा में डेटा को कई नोड्स पर संग्रहित करते हैं। ये नोड्स आपस में संवाद करते हैं। इस उद्देश्य के लिए, Cassandra क्लस्टर स्थापित किया गया है।

  • Cluster यह मूल रूप से नोड्स का एक समूह है, ताकि नोड्स एक दूसरे के साथ आसानी से संवाद कर सकें।
  • कोऑर्डिनेटर नोड वह नोड है जो क्लाइंट के अनुरोध को प्राप्त करता है और उस क्लाइंट की ओर से रेप्लिका के साथ संचार करता है। कोई भी नोड किसी भी अनुरोध के लिए कोऑर्डिनेटर के रूप में कार्य कर सकता है।

विभाजनर

विभाजनकर्ता यह निर्धारित करता है कि क्लस्टर पर डेटा कैसे वितरित किया जाना चाहिए। विभाजनकर्ता क्लस्टर पर डेटा वितरित करने के लिए हैश फ़ंक्शन का उपयोग करता है। हैश की गणना करने के लिए यह विभाजन कुंजी लेता है। उस हैश को कहा जाता है टोकनइस टोकन के आधार पर डेटा वितरित किया जाता है।

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

इसके लिए पूर्वापेक्षाएँ Cassandra Cluster

क्लस्टर सेटअप के लिए निम्नलिखित आवश्यकताएँ हैं।

  1. आपके पास कई मशीनें होनी चाहिए, चाहे वे भौतिक हों या आभासी, जो नोड्स के रूप में कार्य करती हों।
  2. नेटवर्क पर मौजूद नोड्स एक-दूसरे तक पहुँचने में सक्षम होने चाहिए। इंटरनोड ट्रैफ़िक के लिए पोर्ट 7000, TLS सक्षम होने पर पोर्ट 7001 और क्लाइंट कनेक्शन के लिए पोर्ट 9042 उनके बीच खुले होने चाहिए।
  3. प्रत्येक नोड पर लिनक्स स्थापित होना चाहिए। यह प्लेटफॉर्म है। Cassandra इसका परीक्षण किया गया है और इस पर समर्थित है।
  4. Apache Cassandra इसे प्रत्येक नोड पर एक ही संस्करण में स्थापित किया जाना चाहिए। मिश्रित संस्करण स्कीमा समझौते को पूरा नहीं कर सकते।
  5. एक समर्थित JDK इसे प्रत्येक मशीन पर स्थापित किया जाना चाहिए, और JAVA_HOME सेट होना चाहिए।
  6. घड़ियों को एनटीपी के साथ सिंक्रनाइज़ किया जाना चाहिए। Cassandra यह टाइमस्टैम्प के आधार पर परस्पर विरोधी लेखन को हल करता है, इसलिए घड़ी में होने वाला विचलन चुपचाप गलत परिणाम उत्पन्न करता है।

अंतिम आवश्यकता वह है जिसे अक्सर नजरअंदाज कर दिया जाता है, और यह स्टार्टअप विफलताओं के बजाय डेटा संबंधी समस्याओं का कारण बनती है।

.

कैसे स्थापित करने के लिए Cassandra Cluster लिनक्स पर

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

वर्तमान विधि: स्थापित करें Apache Cassandra प्रत्येक नोड पर पैकेज या बाइनरी टारबॉल को एक समान रूप से रखें, फिर उन्हें जोड़ने का प्रयास करने से पहले सत्यापित करें कि प्रत्येक नोड अपने आप शुरू हो रहा है।

tar -xzf apache-cassandra-x.y.z-bin.tar.gz -C /opt/
export CASSANDRA_HOME=/opt/apache-cassandra-x.y.z
$CASSANDRA_HOME/bin/cassandra -f

एक बार जब कोई नोड सुचारू रूप से शुरू हो जाए, तो उसे रोकें, उसकी डेटा डायरेक्टरी को साफ़ करें और नीचे दिए गए क्लस्टर कॉन्फ़िगरेशन अनुभाग पर आगे बढ़ें।

चरण 1) चलाएं Cassandra एंटरप्राइज एडिशन सेटअप। Linux टर्मिनल में सेटअप कमांड चलाएं। निम्न पृष्ठ प्रदर्शित होगा।

स्थापित करें Cassandra Cluster लिनक्स पर

यह पृष्ठ कोई आवश्यक जानकारी प्रदान नहीं करता है। यह केवल इसके बारे में जानकारी प्रदान करता है Cassandra संस्करण. तो इस पृष्ठ को पास करें और अगला बटन दबाएं.

चरण 2) लाइसेंस समझौते को स्वीकार करें। अगला बटन दबाने के बाद अगला पृष्ठ प्रदर्शित होगा।

स्थापित करें Cassandra Cluster लिनक्स पर

यह पृष्ठ पैकेजों और उप पैकेजों के बारे में जानकारी प्रदान करता है Cassandra यह इंस्टॉल होने वाला है। नीचे लाइसेंस के बारे में पूछा जाएगा। 'मैं समझौते को स्वीकार करता/करती हूं' वाले चेकबॉक्स पर टिक करें और अगला बटन दबाएं।

चरण 3) बिल्डर इंस्टॉल करें और नेक्स्ट पर क्लिक करें। नेक्स्ट बटन दबाने के बाद, आपको निम्नलिखित पेज दिखाई देगा।

स्थापित करें Cassandra Cluster लिनक्स पर

यह पृष्ठ आपसे स्थापना विकल्पों के बारे में पूछता है।

  1. सबसे पहले, यह इंस्टॉलेशन डायरेक्टरी के बारे में पूछेगा। डिफ़ॉल्ट रूप से, यह होम डायरेक्टरी में इंस्टॉल होता है।
  2. इसके बाद, यह इंस्टॉलेशन के प्रकार के बारे में पूछता है, सरल इंस्टॉल का चयन करें।
  3. इसके बाद, यह अपडेट सिस्टम के बारे में पूछता है, इसे 'नहीं' पर टिक करें।
  4. इसके बाद, यह डिफ़ॉल्ट इंटरफ़ेस के लिए पूछता है। दो विकल्प हैं: आप लोकलहोस्ट पर इंस्टॉल कर सकते हैं या आईपी एड्रेस चुन सकते हैं। इंस्टॉलेशन के लिए आईपी एड्रेस चुनें।
  5. अगला बटन दबाएं।

चरण 4) नोड सेटअप करें और नेक्स्ट पर क्लिक करें। नेक्स्ट बटन दबाने के बाद निम्नलिखित पेज प्रदर्शित होगा।

स्थापित करें Cassandra Cluster लिनक्स पर

यह पृष्ठ नोड सेटअप के बारे में पूछता है।

  1. सबसे पहले, नोड प्रकार का चयन करें 'Cassandra नोड'.
  2. इसके बाद, रिंग नाम में अपना क्लस्टर नाम दें। Cluster एक ही क्लस्टर में सभी नोड्स के लिए नाम समान होना चाहिए।
  3. अगला चरण, सीड का चयन करें। सीड वह नोड है जिससे अन्य गैर-सीड नोड शुरुआत में संपर्क करते हैं।
  4. यह जानकारी प्रदान करने के बाद अगला बटन दबाएँ।

चरण 5) मॉनिटरिंग एजेंट इंस्टॉल करें। नेक्स्ट बटन दबाने के बाद, निम्नलिखित पेज प्रदर्शित होगा। यह पेज उस आईपी पते के बारे में पूछेगा जहां एजेंट इंस्टॉल किया जाना चाहिए।

  1. मॉनिटरिंग कंसोल के लिए एजेंट की आवश्यकता होती है, जहां सभी नोड्स को एक ही स्थान पर देखा जा सकता है।
  2. यह जानकारी प्रदान करने के बाद अगला बटन दबाएँ।

स्थापित करें Cassandra Cluster लिनक्स पर

चरण 6) इंस्टॉलेशन के लिए अगला बटन दबाएँ। अगला बटन दबाने के बाद निम्नलिखित पृष्ठ प्रदर्शित होगा।

स्थापित करें Cassandra Cluster लिनक्स पर

अब सेटअप इंस्टॉल करने के लिए तैयार है। अगला बटन दबाएँ।

चरण 7) स्थापना प्रक्रिया पूरी होने तक प्रतीक्षा करें। अगला बटन दबाने के बाद, निम्नलिखित पृष्ठ प्रदर्शित होगा।

स्थापित करें Cassandra Cluster लिनक्स पर

इंस्टॉलेशन शुरू हो जाएगा।

चरण 8) फ़िनिश बटन पर क्लिक करें। इंस्टॉलेशन के बाद, निम्नलिखित पेज प्रदर्शित होगा। इस पेज पर, आपको डिफ़ॉल्ट रूप से दिखाई देने वाले विकल्प के लिए चेक मार्क दिखाई देगा।

स्थापित करें Cassandra Cluster लिनक्स पर

नोड्स को जोड़ने के लिए cassandra.yaml को कॉन्फ़िगर करना

केवल इंस्टॉलेशन से क्लस्टर नहीं बनता। नोड्स एक-दूसरे को तभी ढूंढ पाते हैं जब cassandra.yaml में चार सेटिंग्स आपस में मेल खाती हैं, और यही वह फाइल है जहां ज्यादातर क्लस्टर सेटअप में गड़बड़ी होती है।

cluster_name: 'Guru99 Cluster'
seed_provider:
  - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
      - seeds: "192.168.1.10,192.168.1.11"
listen_address: 192.168.1.10
rpc_address: 0.0.0.0
broadcast_rpc_address: 192.168.1.10
endpoint_snitch: GossipingPropertyFileSnitch
  • क्लस्टर_नाम प्रत्येक नोड पर मिलान होना आवश्यक है। मिलान न होना ही किसी नोड के जुड़ने से इनकार करने का सबसे आम कारण है।
  • बीज यह शुरुआती नोड के संपर्क बिंदुओं की सूची बनाता है। प्रति डेटा सेंटर दो या तीन सीड पर्याप्त हैं; हर नोड को सीड बनाने से स्वचालित बूटस्ट्रैप रुक जाता है।ping.
  • listen_address यह वह पता है जिसका उपयोग अन्य नोड इस नोड तक पहुंचने के लिए करते हैं। यह एक वास्तविक राउटेबल पता होना चाहिए, कभी भी लोकलहोस्ट नहीं।
  • एंडपॉइंट_स्निच बताता है Cassandra रैक और डेटा सेंटर लेआउट। गोस्सीpingPropertyFileSnitch आमतौर पर चुना जाने वाला विकल्प है, जिसके मान cassandra-rackdc.properties में सेट किए जाते हैं।

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

शुरुआत में Cassandra आसंधि

स्थापित करने के बाद Cassandra प्रत्येक नोड पर सर्वर शुरू करें और नीचे दिए गए चरणों का पालन करें। क्रम महत्वपूर्ण है: पहले सीड नोड्स को एक-एक करके शुरू करें, प्रत्येक के चालू होने की सूचना मिलने तक प्रतीक्षा करें, फिर अगले को शुरू करें। एक साथ कई नोड्स शुरू करने से टोकन रेंज में टकराव हो सकता है।

चरण 1) इस पर जाएँ Cassandra इंस्टॉलेशन डायरेक्टरी में जाएं और सर्वर शुरू करें।

bin/cassandra -f

शुरुआत में Cassandra आसंधि

इस कमांड को निष्पादित करने से, Cassandra सर्वर शुरू हो जाएगा। यहाँ स्क्रीनशॉट है जहाँ Cassandra सर्वर शुरू हो रहा है।

शुरुआत में Cassandra आसंधि

लगभग एक मिनट बाद सर्वर चालू हो जाएगा। प्रत्येक नोड सर्वर को एक-एक करके शुरू करें। सभी नोड सर्वर शुरू होने के बाद, आपका Cassandra क्लस्टर उपयोग के लिए तैयार है.

चरण 2) किसी भी नोड से रिंग की जांच करके सत्यापित करें कि प्रत्येक नोड जुड़ गया है।

nodetool status
nodetool describecluster

प्रत्येक नोड की स्थिति प्रदर्शित होनी चाहिए। UNइसका अर्थ है अप और नॉर्मल, और ओन्स कॉलम में लगभग बराबर प्रतिशत दिखना चाहिए। डिस्क्राइबक्लस्टर आउटपुट में एक ही स्कीमा संस्करण यह पुष्टि करता है कि सभी नोड्स स्कीमा पर सहमत हैं।

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

रिंग के स्वस्थ होने पर, प्रत्येक कीस्पेस के लिए प्रतिकृति सेटिंग्स यह निर्धारित करती हैं कि डेटा उसमें कैसे फैलता है, जैसा कि वर्णित है। Cassandra keyspace ट्यूटोरियल और Cassandra स्थापत्य टूट - फूट।

अक्सर पूछे जाने वाले प्रश्न

तीन, जो मानक प्रतिकृति कारक तीन के बराबर है। इससे एक नोड के रखरखाव या खराबी के कारण बंद होने पर भी कोरम रीड और राइट ऑपरेशन जारी रह सकते हैं।

नहीं। सीड्स केवल स्टार्टअप और गॉसिप के दौरान संपर्क बिंदुओं के रूप में कार्य करते हैं। वे किसी भी अन्य नोड की तरह डेटा संग्रहीत करते हैं, और एक नोड के नष्ट होने से चल रहे क्लस्टर पर कोई प्रभाव नहीं पड़ता है।

उसी संस्करण को इंस्टॉल करें, उसे मौजूदा सीड से जोड़ें और उसे शुरू करें। यह अपने टोकन रेंज को स्ट्रीम करके स्वचालित रूप से बूटस्ट्रैप हो जाता है। इसके बाद अन्य नोड्स पर नोडटूल क्लीनअप चलाएं।

डेटा की मात्रा, प्रतिकृति कारक और थ्रूपुट लक्ष्यों को देखते हुए, AI एक उचित प्रारंभिक नोड संख्या प्रदान करता है। लोड परीक्षण के साथ इसकी पुष्टि करें, क्योंकि संपीड़न और मरम्मत का भार कार्यभार पर निर्भर करता है।

हाँ। cassandra.yaml के साथ system.log फ़ाइल उपलब्ध कराने से आमतौर पर समस्या का कारण जल्दी पता चल जाता है, जो अक्सर क्लस्टर नाम का बेमेल होना, पोर्ट का अवरुद्ध होना या listen_address को localhost के रूप में छोड़ देना होता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: