ज़ूकीपर को चालू नहीं किया जा सकता

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

समस्या का ब्यौरा

ZoomKeeper की प्रोसेस शुरू नहीं की जा सकी.

गड़बड़ी के मैसेज

जब आप ZoomKeeper की प्रोसेस शुरू करने की कोशिश करते हैं, तो गड़बड़ी का यह मैसेज मिलता है. इससे पता चलता है कि ZoomKeeper को चालू नहीं किया जा सका:

+ apigee-service apigee-zookeeper status
apigee-service: apigee-zookeeper: Not running (DEAD)
apigee-all: Error: status failed on [apigee-zookeeper]

संभावित कारण

यहां दी गई टेबल में, इस समस्या की संभावित वजहों की सूची दी गई है:

वजह इसके लिए:
गलत तरीके से कॉन्फ़िगर किया गया छोटा सापूर, myid Edge Private Cloud के उपयोगकर्ता
ZooKeeper पोर्ट का इस्तेमाल हो रहा है Edge Private Cloud के उपयोगकर्ता
apigee-zookeeper.pid फ़ाइल में गलत प्रोसेस आईडी Edge Private Cloud के उपयोगकर्ता
ज़ूकीपर लीडर के चुनाव में असफलता Edge Private Cloud के उपयोगकर्ता

टेबल में दिए गए किसी लिंक पर क्लिक करके, इस समस्या के संभावित हल देखें.

गलत कॉन्फ़िगर किया गया ZooKeeper myid

नीचे दिए गए सेक्शन में myid फ़ाइल के बारे में खास जानकारी दी गई है. साथ ही, गलत कॉन्फ़िगरेशन से जुड़ी समस्याओं का पता लगाने और उन्हें ठीक करने का तरीका भी बताया गया है.

myid फ़ाइल की खास जानकारी

हर ZoomKeeper नोड में दो फ़ाइलें होती हैं:

  1. /opt/apigee/apigee-zookeeper/conf/zoo.cfg फ़ाइल, जिसमें क्लस्टर में मौजूद सभी ZoomKeeper नोड के आईपी की सूची होती है.

    उदाहरण के लिए, अगर /opt/apigee/apigee-zookeeper/conf/zoo.cfg में, क्लस्टर के तीन DueKeeper नोड हिस्से के आईपी होते हैं, तो ये आईपी इस तरह हैं:

    server.1=11.11.11.11:2888:3888
    server.2=22.22.22.22:2888:3888
    server.3=33.33.33.33:2888:3888
    
  2. /opt/apigee/data/apigee-zookeeper/data/myid फ़ाइल में टेक्स्ट की एक लाइन होती है, जो उस खास ZoomKeeper नोड के सर्वर नंबर से जुड़ी होती है. सर्वर 1 के myid में "1" टेक्स्ट होगा, इसके अलावा कोई और नहीं. यह आईडी, ग्रुप में यूनीक होना चाहिए और इसकी वैल्यू 1 से 255 के बीच होनी चाहिए.

    उदाहरण के लिए, ZooKeeper server.1 पर, /opt/apigee/data/apigee-zookeeper/data/myid फ़ाइल में सिर्फ़ टेक्स्ट 1 होना चाहिए, जैसा कि नीचे दिखाया गया है:

    $ cat myid
    1
    

संक्रमण की जांच

  1. गड़बड़ियों की जानकारी पाने के लिए, चिड़ियाघर में /opt/apigee/var/log/apigee-zookeeper/zookeeper.log कोड वाले लॉग को देखें.
  2. अगर आपको “आईडी #, मेरा आईडी = # के लिए कनेक्शन टूटा हुआ है” से मिलता-जुलता WARN मैसेज दिखता है, जैसा कि नीचे दिए गए डायग्राम में दिखाया गया है, तो यह समस्या हो सकती है कि myid फ़ाइल में मौजूद सर्वर # गलत तरीके से कॉन्फ़िगर किया गया हो या उसमें गड़बड़ी हो.
    [myid:2] - WARN [RecvWorker:2:QuorumCnxManager$RecvWorker@762] -
      Connection broken for id 2, my id = 2, error = java.io.EOFException
        at java.io.DataInputStream.readInt(DataInputStream.java:375)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker.
          run(QuorumCnxManager.java:747)
    
  3. मौजूदा ZKeeper नोड के लिए, /opt/apigee/apigee-zookeeper/conf/zoo.cfg फ़ाइल की जांच करें और Server.# को नोट करें.
  4. /opt/apigee/data/apigee-zookeeper/data/myid फ़ाइल की जांच करें और देखें कि इस फ़ाइल में मौजूद टेक्स्ट, सर्वर से मेल खाता है या नहीं.#, जिसकी जानकारी दूसरे चरण में दी गई है.
  5. अगर दोनों गड़बड़ियां मेल नहीं खाती हैं, तो इसका मतलब है कि आपने DueKeeper ऐप्लिकेशन के शुरू न होने की वजह का पता लगाया है.

रिज़ॉल्यूशन

अगर myid फ़ाइल गलत तरीके से कॉन्फ़िगर की गई है, तो myid फ़ाइल में बदलाव करें और इसकी वैल्यू को cloud.cfg में सर्वर.# पैरामीटर को दिखाने वाले सही टेक्स्ट से बदलें.

ZoomKeeper पोर्ट का इस्तेमाल हो रहा है

संक्रमण की जांच

  1. गड़बड़ियों की जानकारी के लिए, ZoomKeeper का लॉग /opt/apigee/var/log/apigee-zookeeper/zookeeper.log देखें.
  2. अगर आपको पोर्ट #2181 से बाइंड करते समय अपवाद java.net.BindException: Address already in use दिखता है, जैसा कि नीचे दिए गए चित्र में दिखाया गया है, तो इसका मतलब है कि चिड़ियाघर के पोर्ट 2181 का इस्तेमाल किसी दूसरी प्रोसेस में किया जा रहा है. इसलिए, ZoomKeeper को चालू नहीं किया जा सका.
    2017-04-26 07:00:10,420 [myid:3] - INFO  [main:NIOServerCnxnFactory@94] -
      binding to port 0.0.0.0/0.0.0.0:2181
    2017-04-26 07:00:10,421 [myid:3] - ERROR [main:QuorumPeerMain@89] -
      Unexpected exception, exiting abnormally
      java.net.BindException: Address already in use
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
        at org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:95)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:130)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
    
  3. इस बात की पुष्टि करने के लिए नीचे दिए गए netstat कमांड का इस्तेमाल करें कि कभी भी,ज़ूकीपर पोर्ट 2181 का इस्तेमाल किसी दूसरी प्रोसेस में किया जा रहा है:
    netstat -an | grep 2181
    

रिज़ॉल्यूशन

अगर चिड़ियाघर में रखने वाले पोर्ट 2181 का अब भी इस्तेमाल किया जा रहा है, तो इस समस्या को हल करने के लिए यह तरीका अपनाएं:

  1. पोर्ट 2181 पर लागू होने वाली प्रोसेस को ढूंढने के लिए, netstat कमांड का इस्तेमाल करें. चिड़ियाघर की ओर से पोर्ट 2181 का इस्तेमाल करने वाली प्रोसेस को बंद करें:
    $ netstat -antp | grep 2181
    tcp        0      0 0.0.0.0:2181            0.0.0.0:*
    LISTEN      28016/java <defunct>
    $ kill -9 28016
    
  2. अगर पीआईडी और लॉक फ़ाइलें मौजूद हैं, तो उन्हें हटाएं:
    /opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
    /opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.lock
    
  3. ज़ूकीपर को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
    

apigee-zookeeper.pid फ़ाइल में गलत प्रोसेस आईडी

जब आप ZoomKeeper को बंद/फिर से चालू करने की कोशिश करते हैं, तो हो सकता है कि वह काम न करे, क्योंकि apigee-zookeeper.pid फ़ाइल में पुराना/गलत पीआईडी मौजूद है, न कि मौजूदा गलत पीआईडी. ऐसा तब हो सकता है, जब किसी वजह से या ज़ूकीपर की प्रोसेस अचानक बंद हो जाए और apigee-zookeeper.pid फ़ाइल न मिटाई गई हो.

संक्रमण की जांच

  1. ps कमांड चलाकर, मौजूदा समय में चल रही ZoomKeeper प्रोसेस का प्रोसेस आईडी पाएं:
    ps -ef | grep zookeeper
    
  2. देखें कि /opt/apigee/var/run/apigee-ZooKeeper/apigee-zookeeper.pid फ़ाइल मौजूद है या नहीं. अगर यह मौजूद है, तो इस फ़ाइल में लिखे गए प्रोसेस आईडी को नोट कर लें.
  3. चरण #1 और #2 में लिए गए प्रक्रिया आईडी की तुलना करें. अगर दोनों अलग-अलग हैं, तो apigee-zookeeper.pid file. में गलत प्रोसेस आईडी होने की वजह से यह समस्या हुई

रिज़ॉल्यूशन

  1. apigee-zookeeper.pid फ़ाइल में बदलाव करें और गलत प्रोसेस आईडी को ps कमांड से मिले सही प्रोसेस आईडी से बदलें (ऊपर दिया गया चरण #1).
  2. ज़ूकीपर को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
    

ज़ूकीपर लीडर के चुनाव में गड़बड़ी

संक्रमण की जांच

डाइग्नोस्टिक करने के लिए:

  1. गड़बड़ियों की जानकारी पाने के लिए, चिड़ियाघर में /opt/apigee/var/log/apigee-zookeeper/zookeeper.log कोड वाले लॉग को देखें.
  2. देखें कि कॉन्फ़िगरेशन में कोई बदलाव तो नहीं हुआ है. ऐसी स्थिति में, ZoomKeeper ने लीडर के चुनाव में हिस्सा नहीं लिया.
  3. /opt/apigee/apigee-zookeeper/conf/zoo.cfg की जांच करें और पक्का करें कि क्लस्टर में मौजूद सभी zuKeepers में सर्वर.# पैरामीटर के लिए, सही संख्या और आईपी पते हों. यह भी ध्यान रखें कि नेता के चुनाव में सफल होने के लिए, कम से कम तीन मतदाता होने चाहिए. साथ ही, मतदाताओं की संख्या विषम संख्या में होनी चाहिए. अगर वोटर की संख्या बहुत कम है, जैसे कि सिर्फ़ दो वोटर, तो सिर्फ़ दो वोटर में से नेता तय करने के लिए, लोगों की संख्या को सीमित नहीं किया जा सकता.

रिज़ॉल्यूशन

आम तौर पर, ज़ूकेपर के चुनाव में गड़बड़ी होने की वजह, गलत तरीके से कॉन्फ़िगर किया गया माइड आईडी होता है. चुनाव में फ़ेल हो जाने की समस्या को हल करने के लिए, गलत तरीके से कॉन्फ़िगर किए गए DueKeeper myid में दिए गए रिज़ॉल्यूशन का इस्तेमाल करें.

अगर समस्या बनी रहती है और आगे की समस्या का पता लगाना ज़रूरी है, तो Apigee Edge की सहायता टीम से संपर्क करें.