ज़ूकीपर कॉन्फ़िगरेशन इस प्रकार डिज़ाइन किया गया है कि आप बिना किसी संशोधन के क्लस्टर में सभी सर्वरों पर सटीक कॉन्फ़िगरेशन फ़ाइल स्थापित कर सकते हैं। यह ops थोड़ा आसान बनाता है। घटक जो स्थानीय नोड के लिए कॉन्फ़िगरेशन निर्दिष्ट करता है myid फ़ाइल है।
आपके द्वारा परिभाषित कॉन्फ़िगरेशन एक है जिसे सभी सर्वरों पर साझा किया जा सकता है। आपकी सर्वर सूची में सभी सर्वर एक निजी आईपी पते पर बाध्यकारी होना चाहिए जो नेटवर्क में अन्य नोड्स के लिए सुलभ है। आप अपना सर्वर स्टैंडअलोन मोड में शुरू कर रहे हैं क्योंकि आप लोकलहोस्ट पर बाध्यकारी हैं। तो, समस्या यह है कि क्लस्टर में अन्य सर्वर लोकलहोस्ट नहीं देख सकते हैं।
आपका विन्यास अधिक तरह दिखना चाहिए:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
server.1=<private ip of ec2 instance 1>:2888:3888
server.2=<private ip of ec2 instance 2>:2888:3888
server.3=<private ip of ec2 instance 3>:2888:3888
दो प्रत्येक सर्वर परिभाषा में सूचीबद्ध बंदरगाहों क्रमशः चिड़ियाघर संचालक नोड्स द्वारा इस्तेमाल किया एक दूसरे के आंतरिक के साथ संवाद करने कोरम और चुनाव बंदरगाह हैं। इन बंदरगाहों को संशोधित करने की आमतौर पर कोई आवश्यकता नहीं होती है, और आपको उन्हें स्थिरता के लिए सर्वर्स में रखने की कोशिश करनी चाहिए।
इसके अतिरिक्त, जैसा कि मैंने कहा था कि आप सभी उदाहरणों में उस सटीक कॉन्फ़िगरेशन फ़ाइल को साझा करने में सक्षम होना चाहिए। केवल एक चीज जिसे बदलना चाहिए myid फ़ाइल है।
आपको शायद एक सुरक्षा समूह बनाने और क्लाइंट पोर्ट और क्लाउम/चुनाव बंदरगाहों के लिए उपलब्ध होने के लिए क्लाइंट पोर्ट खोलने की आवश्यकता होगी अन्य ZooKeeper सर्वरों द्वारा पहुंचा जा सकता है।
अंत में, आप क्लस्टर को प्रबंधित करने में सहायता के लिए यूआई में देखना चाहेंगे।Netflix makes a decent UI जो आपको अपने क्लस्टर का एक दृश्य देगा और पुराने लॉग को साफ करने और एस 3 पर स्नैपशॉट संग्रहीत करने में भी मदद करेगा (चिड़ियाघर के स्नैपशॉट्स लेते हैं लेकिन पुराने लेन-देन लॉग को हटा नहीं देते हैं, इसलिए आपकी डिस्क अंततः भर जाएगी यदि उन्हें ठीक से हटाया नहीं गया है) । लेकिन एक बार यह सही तरीके से कॉन्फ़िगर हो जाने पर, आपको लॉग में एक-दूसरे से जुड़ने वाले ZooKeeper सर्वर भी देख पाएंगे।
संपादित
@czerasz लिखते हैं कि संस्करण से शुरू 3.4.0 आप अपनी फोटो को साफ रखने के autopurge.snapRetainCount
और autopurge.purgeInterval
निर्देशों का उपयोग कर सकते हैं।
@chomp लिखते हैं कि कुछ उपयोगकर्ताओं आईपी स्थानीय सर्वर के लिए 0.0.0.0
उपयोग करने के लिए EC2 पर काम करने के चिड़ियाघर संचालक विन्यास प्राप्त करने के लिए किया है। दूसरे शब्दों में, पर कॉन्फ़िगरेशन फ़ाइल में <private ip of ec2 instance 1>
0.0.0.0
के साथ प्रतिस्थापित करें। यह ZooKeeper कॉन्फ़िगरेशन फ़ाइलों को डिज़ाइन किए जाने के तरीके से काउंटर है लेकिन ईसी 2 पर आवश्यक हो सकता है।
संस्करण '3.4.0' से शुरू करना आप अपने स्नैपशॉट को साफ रखने के लिए 'autopurge.snapRetainCount' और' autopurge.purgeInterval' निर्देशों का उपयोग कर सकते हैं। – czerasz
मशीन के निजी आईपी को रखने के बजाय, उदाहरण 1 (उदाहरण के लिए) की zoo.cfg फ़ाइल में, यह "0.0.0.0" होना चाहिए। – chomp
@chomp क्या आप कह रहे हैं कि यह 'server.1' के लिए कॉन्फ़िगरेशन फ़ाइल थी, तो आप फ़ाइल में उस विशिष्ट प्रविष्टि के लिए '0.0.0.0' डाल सकते हैं? चिड़ियाघर की कॉन्फ़िगरेशन फ़ाइलों को डिज़ाइन किया गया है ताकि उन्हें संपादित किए बिना मशीनों में डुप्लिकेट किया जा सके, यही कारण है कि 'myid' फ़ाइल अलग है। हम सभी सर्वरों के आईपी के रूप में '0.0.0.0' नहीं डाल सकते हैं क्योंकि आप किसी दूरस्थ सर्वर का संदर्भ नहीं दे सकते हैं। इस प्रकार, कॉन्फ़िगरेशन फ़ाइल में असली आईपी होना चाहिए। – kuujo