2015-03-28 12 views
5

मैं ज़ूकीपर के लिए नया हूं और ईसी 2 के लिए नया हूं। मैं 3 ec2 ​​उदाहरणों पर ज़ूकीपर स्थापित करने की कोशिश कर रहा हूं।एकाधिक एडब्ल्यूएस ईसी 2 इंस्टेंसेंस पर ज़ूकीपर इंस्टॉलेशन

प्रति zookeeper document के रूप में, मैं, सभी 3 उदाहरण पर चिड़ियाघर संचालक स्थापित zoo.conf बनाया है और विन्यास नीचे जोड़ने है /opt/zookeeper/data/myid प्रति दिशानिर्देश के रूप में के रूप में सभी 3 उदाहरण पर

tickTime=2000 
initLimit=10 
syncLimit=5 
dataDir=/opt/zookeeper/data 
clientPort=2181 
server.1=localhost:2888:3888 
server.2=<public ip of ec2 instance 2>:2889:3889 
server.3=<public ip of ec2 instance 3>:2890:3890 

भी मैं बनाया है MyID फ़ाइल। । जब भी मैं चिड़ियाघर संचालक सर्व शुरू कर रहा हूँ

  1. :

    मैं नीचे के रूप में प्रश्नों की जोड़ी प्रत्येक उदाहरण पर er, यह स्टैंडअलोन मोड में शुरू होगा। (लॉग के अनुसार)

  2. कॉन्फ़िगरेशन से ऊपर वास्तव में एक-दूसरे से कनेक्ट हो सकता है? पोर्ट 2889: 3889 & 28 9 0: 38 9 00 - ये बंदरगाह क्या है। क्या मुझे इसे ec2 मशीन पर कॉन्फ़िगर करने की आवश्यकता है या मुझे इसके खिलाफ कुछ अन्य पोर्ट देने की आवश्यकता है?

  3. क्या मुझे इन कनेक्शन को खोलने के लिए सुरक्षा समूह बनाने की आवश्यकता है? मुझे यकीन नहीं है कि ec2 उदाहरण में इसे कैसे किया जाए।

  4. सभी 3 ज़ूकीपर की पुष्टि कैसे हुई है और वे एक दूसरे के साथ संवाद कर सकते हैं?

उत्तर

10

ज़ूकीपर कॉन्फ़िगरेशन इस प्रकार डिज़ाइन किया गया है कि आप बिना किसी संशोधन के क्लस्टर में सभी सर्वरों पर सटीक कॉन्फ़िगरेशन फ़ाइल स्थापित कर सकते हैं। यह 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 पर आवश्यक हो सकता है।

+1

संस्करण '3.4.0' से शुरू करना आप अपने स्नैपशॉट को साफ रखने के लिए 'autopurge.snapRetainCount' और' autopurge.purgeInterval' निर्देशों का उपयोग कर सकते हैं। – czerasz

+0

मशीन के निजी आईपी को रखने के बजाय, उदाहरण 1 (उदाहरण के लिए) की zoo.cfg फ़ाइल में, यह "0.0.0.0" होना चाहिए। – chomp

+0

@chomp क्या आप कह रहे हैं कि यह 'server.1' के लिए कॉन्फ़िगरेशन फ़ाइल थी, तो आप फ़ाइल में उस विशिष्ट प्रविष्टि के लिए '0.0.0.0' डाल सकते हैं? चिड़ियाघर की कॉन्फ़िगरेशन फ़ाइलों को डिज़ाइन किया गया है ताकि उन्हें संपादित किए बिना मशीनों में डुप्लिकेट किया जा सके, यही कारण है कि 'myid' फ़ाइल अलग है। हम सभी सर्वरों के आईपी के रूप में '0.0.0.0' नहीं डाल सकते हैं क्योंकि आप किसी दूरस्थ सर्वर का संदर्भ नहीं दे सकते हैं। इस प्रकार, कॉन्फ़िगरेशन फ़ाइल में असली आईपी होना चाहिए। – kuujo

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