क्या आपको प्रत्येक नोड पर नोडोडूल रिपेयर चलाना है?


12

क्या आपको nodetool repairप्रत्येक नोड पर एक क्लस्टर में चलना है , या क्या आपको इसे केवल एक नोड पर चलाने की आवश्यकता है, और वहां से कैसंड्रा बाकी का ख्याल रखेगा?

जवाबों:


9

दस्तावेज़ीकरण को देखने के दौरान, मुझे इसके लिए एक संदर्भ खोजने में कठिन समय हो रहा है, लेकिन संक्षिप्त उत्तर "हां" है, आपको nodetool repairअपने क्लस्टर में प्रत्येक नोड पर चलने की आवश्यकता है । निकटतम मैं पा सकता हूं कि नोड्स की मरम्मत पर प्रलेखन है जो बताता है कि आपको एक बार में अपने क्लस्टर में एक से अधिक नोड पर मरम्मत नहीं करनी चाहिए।

आप ध्वज के साथ मरम्मत भी चला सकते हैं -pr, जो मरम्मत कार्य को पहले टोकन सीमा तक सीमित करता है जो वर्तमान नोड के लिए जिम्मेदार है। यह शेष नोड्स पर चलने पर काम के दोहराव पर कटौती करता है।


इसलिए अगर मैं -prहर नोड पर चलाऊं, तो क्या यह पूरे कीस्पेस को कवर करेगा?
2rs2ts

1
@ 2rs2ts हां, यदि आप इसे -prप्रत्येक नोड पर चलाते हैं तो यह संपूर्ण कीस्पेस (s) को कवर करेगा।
हारून

1
ठीक है ... मैं मान जा रहा हूँ, फिर, कि आप इसे हर नोड पर चलाने वाले हैं, लेकिन आप -prझंडे के साथ समय बचा सकते हैं ।
2rs2ts

1
मैंने दूसरे उत्तर में कुछ स्रोत जोड़े। यह स्रोत बिल्कुल स्पष्ट है: "नियमित मरम्मत आवृत्ति के लिए कठिन आवश्यकता gc_grace_secairs का मान है। इस समय अवधि के भीतर प्रत्येक नोड पर कम से कम एक बार मरम्मत कार्य चलाएं ।" रिपेयरिंग नोड्स
कार्ल जी

5

यह कैसे व्यवहार करता है यह आपके कॉन्फ़िगरेशन पर निर्भर करता है कि आप कैसंड्रा के किस संस्करण का उपयोग करते हैं, और आप मरम्मत कमांड कैसे चलाते हैं।

यदि आप nodetool repairकिसी क्लस्टर में केवल एक नोड पर चलते हैं, तो यह सभी डेटा (टोकन रेंज) की मरम्मत करेगा जो नोड के लिए ज़िम्मेदार है और अन्य नोड्स जो उस डेटा के लिए ज़िम्मेदार हैं।

उदाहरण के लिए, यदि आप nodetool repairदिए गए क्लस्टर में एक नोड पर कमांड चलाना चाहते थे :

  • यदि आप तीन नोड नोड चला रहे हैं तो तीन नोड्स के प्रतिकृति कारक के साथ सभी डेटा का मालिक होगा और इस प्रकार सभी नोड्स के लिए मरम्मत की जाएगी।
  • यदि आप 2 के प्रतिकृति कारक के साथ छह नोड क्लस्टर चला रहे हैं, तो डेटा केवल छह नोड्स में से दो पर मरम्मत की जाएगी। शेष चार नोड्स में से दो पर मरम्मत की आवश्यकता होगी।

उस ने कहा, यह परिभाषित करना संभव है कि मेजबानों और डेटा केंद्रों -hostsऔर -dcझंडे के उपयोग पर मरम्मत करने के लिए क्या करें । इसके अतिरिक्त यदि आप -prध्वज का उपयोग करते हैं (जो केवल पहली टोकन सीमा को लेगा तो नोड इसके लिए ज़िम्मेदार है) आपको क्लस्टर में सभी नोड्स nodetool repair -prपर चलना होगा ।

ध्यान में रखने वाला एक अन्य ध्वज -incध्वज है, जिसे कैसंड्रा 2.1 में शामिल किया गया था। यह विकल्प केवल नए डेटा (डेटा जो पहले से मरम्मत नहीं किया गया है) की मरम्मत करेगा। इस पर भरोसा करते समय सावधान रहें, खासकर यदि आप अक्सर डेटा हटाते हैं। ( इस पर और अधिक )

कुछ और ध्यान में रखना है कि कैसंड्रा में डिफ़ॉल्ट तरीके से मरम्मत की जाती है। कैसंड्रा 2.1 के रूप में जब बस चलती है तो nodetool repairयह डिफ़ॉल्ट रूप से पूर्ण अनुक्रमिक मरम्मत करता है। आप देखना चाहेंगे कि आपका संस्करण क्या करता है।

विषय पर अधिक पढ़ने के लिए:

https://www.datastax.com/dev/blog/repair-in-cassandra


2
यहाँ केवल एक ही अच्छा जवाब है
ruruskyi

2

नहीं, आपको प्रत्येक व्यक्तिगत नोड पर नहीं चलना होगा। nodetool repairनोड्स के सेट पर चलता है, जो स्पष्ट रूप से प्रलेखन में कहा गया है ।

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


4
nodetool repairएकल नोड पर चलना सभी कॉन्फ़िगरेशन में सभी नोड्स पर सभी प्रतिकृति डेटा को सुधारने के लिए पर्याप्त नहीं है। nodetool repairएकल नोड पर चलने से केवल उस नोड पर प्रतिकृति किए गए डेटा की मरम्मत होगी। ( -prविकल्प को जोड़ने से डेटा की मरम्मत सीमित हो जाती है जिसके लिए यह नोड पहली प्रतिकृति है।) लेकिन यदि आपके पास अपने क्लस्टर में डेटा है जिसे इस नोड पर दोहराया नहीं गया है, तो आपको nodetool repairअतिरिक्त नोड्स पर चलना होगा ।
कार्ल जी

2
"-Pr विकल्प निर्दिष्ट नहीं है, तो कैसेंड्रा सभी प्रतिकृति रेंज की मरम्मत करता है जो नोड की जिम्मेदारी के भीतर आते हैं।" नोडेटूल रिपेयर डॉक्स (Ie डेटा की मरम्मत नहीं करता है जिसके लिए यह नोड प्रतिकृति के लिए ज़िम्मेदार नहीं है।) "नियमित मरम्मत आवृत्ति के लिए कठिन आवश्यकता gc_grace_seconds का मान है। इस समय अवधि के भीतर प्रत्येक नोड में कम से कम एक बार मरम्मत कार्य चलाएं ।" रिपेयरिंग नोड्स
कार्ल जी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.