2011-12-21 16 views
8
  1. मेरे पास ईसी 2 पर 12 नोड्स का कैसंद्रा क्लस्टर है।
  2. कुछ विफलता के कारण हमने पूरी तरह से नोड को खो दिया। मेरा मतलब है कि मशीन अब मौजूद नहीं है।
  3. तो मैं मर नोड के रूप में एक अलग आईपी और इसी के साथ नए EC2 उदाहरण बनाया है और मैं भी उस नोड पर डेटा का बैकअप था तो यह ठीक काम करता है
  4. लेकिन समस्या यह मृत नोड्स अभी भी आईपी है क्लस्टर का वर्णन करने में एक पहुंचने योग्य नोड के रूप में प्रकट होता है।
  5. कि नोड (EC2 उदाहरण) के रूप में अब मौजूद नहीं है मैं उपयोग नहीं कर सकते nodetool decommission या nodetool

disablegossip कैसे मैं इस पहुँच योग्य नहीं नोड केकैसंड्रा क्लस्टर से मृत नोड को कैसे हटाया जाए?

उत्तर

5

आम तौर पर छुटकारा पा सकते हैं जब आप नोड को बदलते हैं तो आप नए नोड के टोकन को (failure node's token) - 1 पर सेट करना चाहते हैं और इसे बूटस्ट्रैप करने दें। 1.0 के रूप में अब एक झंडा है जिसे आप replace a dead node पर स्टार्टअप पर निर्दिष्ट कर सकते हैं: "cassandra.replace_token ="।

के बाद से आप पहले से ही एक ही टोकन वहाँ एक अतिरिक्त कदम के साथ नए नोड जोड़ लिया है:

  1. ले जाएँ (failure node's token) - 1 को नए नोड के टोकन नोड्स में से एक से nodetool move
  2. भागो nodetool removetoken <failed node's token> का उपयोग कर
  3. प्रत्येक नोड प्रत्येक नोड

ये मूल रूप सेको बदलने के लिए चलाएं अतिरिक्त टोकन चाल के साथ मृत नोड।

+0

धन्यवाद साइनफोर्ड। लेकिन मेरे मामले में मैंने पहले से ही उसी नोड के साथ नया नोड शुरू कर दिया है क्योंकि मृत नोड था.अब अंगूठी ठीक और संतुलित है। लेकिन क्लस्टर का वर्णन करने से यह मृत नोड को पहुंचने योग्य नहीं दिखाता है। अधिकांश मामलों के लिए यह अभी भी ठीक है, लेकिन हम sstableloader के साथ डेटा लोड करते हैं और पहुंचने योग्य नोड sstableloader काम नहीं करता है। इसके लिए संभावित समाधान क्या हो सकता है? – samarth

+0

आपको अंगूठी से पुराने नोड के ज्ञान को साफ़ करने की आवश्यकता है। आप इसे 'nodetool removetoken' के साथ कर सकते हैं। आपकी समस्या यह है कि प्रतिस्थापन नोड को भी हटा देगा। इसलिए आपको 'हटाने' करने से पहले प्रतिस्थापन नोड के टोकन को टोकन -1 में स्थानांतरित करने की आवश्यकता है। – psanford

+0

मैंने आपके द्वारा सुझाए गए समाधान की कोशिश की है। हमने सफलतापूर्वक नया नोड स्थानांतरित कर दिया है। लेकिन मृत नोड को हटाने के दौरान यह कहकर अटक गया है: 'रिमूवलस्टैटस: टोकन को हटाने (62676456546693435176060154681903071729)। [Cassandra-1/10.101.101.01 ' – samarth

7

मुझे एक ही समस्या थी और मैंने इसे removenode के साथ हल किया, जिसके लिए आपको नोड टोकन खोजने और बदलने की आवश्यकता नहीं है।

पहले, नोड UUID मिलती है:

nodetool status 

DN 192.168.56.201 ?   256  13.1% 4fa4d101-d8d2-4de6-9ad7-a487e165c4ac r1 
DN 192.168.56.202 ?   256  12.6% e11d219a-0b65-461e-babc-6485343568f8 r1 
UN 192.168.2.91 156.04 KB 256  12.4% e1a33ed4-d613-47a6-8b3b-325650a2bbd4 RAC1 
UN 192.168.2.92 156.22 KB 256  13.6% 3a4a086c-36a6-4d69-8b61-864ff37d03c9 RAC1 
UN 192.168.2.93 149.6 KB 256  11.3% 20decc72-8d0a-4c3b-8804-cc8bc98fa9e8 RAC1 

आप 0.201 और 0.202 मर चुका है और एक अलग नेटवर्क पर हैं देख सकते हैं। इन्हें उचित डिमोकिशनिंग और सिफारिश के बिना .91 और .92 में बदल दिया गया है। मैं नेटवर्क स्थापित करने पर काम कर रहा था और कुछ गलतियाँ की ...

दूसरा, निम्न आदेश के साथ 0.201 निकालें:

nodetool removenode 4fa4d101-d8d2-4de6-9ad7-a487e165c4ac 

(पुराने संस्करणों में इसे हटाने nodetool था ...)

लेकिन nodetool removetoken ... के लिए, यह ब्लॉक करता है ... (psandord उत्तर में समर्थ द्वारा टिप्पणी देखें) हालांकि, इसका दुष्प्रभाव है, यह यूयूआईडी को नोड्स की सूची में हटाने के लिए रखता है। तो अगला हम इसके साथ हटाने को मजबूर कर सकते हैं:

nodetool removenode force 

(पुराने संस्करणों में यह nodetool हटा दिया गया था ...

RemovalStatus: निकाला जा रहा है टोकन (-9136982325337481102))

अब नोड आदेश यह मुझसे कहता है कि यह अमान्य प्रविष्टि को हटा रहा है स्वीकार करता है। [/192.168.2.91,/192.168.2.92] से प्रतिकृति पुष्टि की प्रतीक्षा कर रहा है।

हम यह भी देखते हैं कि यह दो अन्य नोड्स के साथ संचार करता है और इस प्रकार इसमें थोड़ा समय लगता है, लेकिन यह अभी भी काफी तेज़ है।

अगला nodetool status .201 नोड नहीं दिखाता है। मैं .202 के साथ दोहराना और अब स्थिति साफ है।

nodetool cleanup 

सफाई सुनिश्चित करने के लिए एक-एक करके, सभी नोड्स पर चलाया जाना चाहिए, परिवर्तन पूरी तरह से खाते में लिया गया है:

उसके बाद आप के रूप में भी psanford जवाब में बताया गया एक क्लीनअप चलाने के लिए चाहते हो सकता है ।

+0

हैलो, कृपया मेरे पास एक प्रश्न है। nodetool स्थिति केवल एक नोड (आईपी @ 127.0.0.1 के साथ) स्थिति = ऊपर/नीचे |/राज्य = सामान्य/छोड़ने/जुड़ना/ - पता लोड टोकन के मालिक (प्रभावी) होस्ट आईडी रैक संयुक्त राष्ट्र 127.0.0.1 83.05 केबी 256 100.0% 460ddcd9-1ee8-48b8-a618-c076056aad07 rack1 – researcher

+0

आईपी पता बदलने के लिए मैं कैसे कर सकता हूं? और जैसा कि आपने किया है, मैं अंगूठी पर सभी नोड्स की सूची कैसे प्राप्त कर सकता हूं? बहुत बहुत धन्यवाद। सादर। – researcher

+0

cassandra.yaml नामक फ़ाइल के लिए खोजें और फ़ाइल के अंदर, seed_provider नामक प्रविष्टि की खोज करें। इसमें आईपी पते के लिए प्रविष्टियां हैं। फिर cassandra-rackdc.properties और cassandra-topology.properties फ़ाइलों में देखें। एक कैसंड्रा-टोपोलॉजी भी है। मुझे लगता है कि अब नए संस्करणों में इसका उपयोग नहीं किया जाता है। –

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