Zookeeper চালু করা যায়নি

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

সমস্যার উপসর্গ

ZooKeeper প্রসেস শুরু করা যাচ্ছে না।

সমস্যার মেসেজ

আপনি ZooKeeper প্রসেস শুরু করার চেষ্টা করলে, নিম্নলিখিত সমস্যার মেসেজ দেখানো হয় যা থেকে বোঝা যায় যে ZooKeeper শুরু করা যায়নি:

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

সম্ভাব্য কারণ

নিচের সারণীতে এই সমস্যার সম্ভাব্য কারণগুলি তালিকাভুক্ত করা হয়েছে:

কারণ এর জন্য
ভুলভাবে কনফিগার করা ZooKeeper myid Edge Private Cloud ব্যবহারকারী
ZooKeeper পোর্ট ব্যবহার করা হচ্ছে Edge Private Cloud ব্যবহারকারী
apigee-zookeeper.pid ফাইলে ভুল প্রসেস আইডি Edge Private Cloud ব্যবহারকারী
ZooKeeper লিডার নির্বাচন ব্যর্থ হওয়া Edge Private Cloud ব্যবহারকারী

সম্ভাব্য সমাধান দেখতে, টেবিলের কোনও লিঙ্কে ক্লিক করুন।

ভুল কনফিগার করা ZooKeeper myid

নিম্নলিখিত বিভাগগুলি myid ফাইলের একটি ওভারভিউ প্রদান করে এবং কীভাবে ভুল কনফিগারেশন সংক্রান্ত সমস্যা নির্ণয় ও সমাধান করতে হয় তা বর্ণনা করে।

myid ফাইলের ওভারভিউ

প্রতিটি ZooKeeper নোডে, দুটি ফাইল থাকে:

  1. /opt/apigee/apigee-zookeeper/conf/zoo.cfg ফাইল, যাতে ক্লাস্টারের সব ZooKeeper নোডের IP-এর তালিকা থাকে।

    যেমন, /opt/apigee/apigee-zookeeper/conf/zoo.cfg-এ যদি ক্লাস্টারের ৩টি ZooKeeper নোডের IP থাকে, তাহলে তা এইরকম হবে:

    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 ফাইলে একটি লাইন টেক্সট থাকে যা সেই নির্দিষ্ট ZooKeeper নোডের সার্ভার নম্বরের সাথে সম্পর্কিত। server 1-এর myid-তে "1" টেক্সটটি থাকবে এবং আর কিছুই থাকবে না। এনসেম্বলের মধ্যে আইডিটি অনন্য হতে হবে এবং এর মান ১ থেকে ২৫৫-এর মধ্যে হতে হবে।

    যেমন, ZooKeeper server.1-এ, /opt/apigee/data/apigee-zookeeper/data/myid ফাইলে শুধু ১ টেক্সট থাকতে হবে, যেমন নিচে দেখানো হয়েছে:

    $ cat myid
    1

ডায়াগনসিস

  1. সমস্যার জন্য ZooKeeper লগ /opt/apigee/var/log/apigee-zookeeper/zookeeper.log চেক করুন।
  2. নিচের ছবিতে দেখানো "Connection broken for id #, my id = #" মেসেজের মতো 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. /opt/apigee/apigee-zookeeper/conf/zoo.cfg ফাইল চেক করুন এবং বর্তমান ZooKeeper নোডের জন্য server.# নোট করুন।
  4. /opt/apigee/data/apigee-zookeeper/data/myid ফাইল চেক করে দেখুন যে এই ফাইলের টেক্সট #২ ধাপে উল্লেখ করা সার্ভারের সাথে মিলছে কিনা।
  5. কোনও অমিল থাকলে, ZooKeeper চালু না হওয়ার কারণ আপনি শনাক্ত করতে পেরেছেন।

রেজোলিউশন

myid ফাইল ভুলভাবে কনফিগার করা থাকলে, myid ফাইল এডিট করুন এবং zoo.cfg-তে সার্ভারকে প্রতিনিধিত্বকারী সঠিক টেক্সট দিয়ে ভ্যালু পরিবর্তন করুন।# প্যারামিটার।

ZooKeeper পোর্ট ব্যবহার করা হচ্ছে

ডায়াগনসিস

  1. সমস্যার জন্য ZooKeeper লগ /opt/apigee/var/log/apigee-zookeeper/zookeeper.log চেক করুন।
  2. নিচের ছবিতে দেখানো পোর্ট #2181-এর সাথে বাইন্ড করার সময় আপনি যদি java.net.BindException: Address already in use ব্যতিক্রম দেখতে পান, তাহলে বুঝতে হবে যে ZooKeeper পোর্ট 2181 অন্য কোনও প্রসেস ব্যবহার করছে। তাই, ZooKeeper চালু করা যায়নি।
    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 কমান্ড ব্যবহার করে নিশ্চিত করুন যে ZooKeeper পোর্ট 2181 সত্যিই অন্য কোনও প্রসেস ব্যবহার করছে:
    netstat -an | grep 2181

রেজোলিউশন

ZooKeeper পোর্ট 2181 এখনও ব্যবহার করা হলে, এই সমস্যার সমাধান করতে নিচে উল্লেখ করা ধাপগুলি অনুসরণ করুন: সমস্যা:

  1. netstat কমান্ড ব্যবহার করে সেই প্রসেস খুঁজে বের করুন যা পোর্ট ২১৮১ হোল্ড করে আছে। ZooKeeper পোর্ট ২১৮১ ব্যবহার করছে এমন প্রসেস বন্ধ করুন:
    $ netstat -antp | grep 2181
    tcp        0      0 0.0.0.0:2181            0.0.0.0:*
    LISTEN      28016/java <defunct>
    $ kill -9 28016
  2. pid ও লক ফাইল থাকলে সেগুলি ক্লিন-আপ করুন:
    /opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
    /opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.lock
  3. ZooKeeper রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart

apigee-zookeeper.pid ফাইলে ভুল প্রসেস আইডি

আপনি ZooKeeper বন্ধ/আবার চালু করার চেষ্টা করলে, এটি ব্যর্থ হতে পারে কারণ apigee-zookeeper.pid ফাইলে পুরনো/ভুল PID থাকে এবং বর্তমানে চলমান ZooKeeper প্রসেসের PID থাকে না। ZooKeeper প্রসেস অপ্রত্যাশিতভাবে বা কোনও কারণে হঠাৎ বন্ধ হয়ে গেলে এবং apigee-zookeeper.pid ফাইল মুছে না গেলে এটি হতে পারে।

ডায়াগনসিস

  1. ps কমান্ড রান করে বর্তমানে চালু থাকা ZooKeeper প্রসেসের প্রসেস আইডি পান:
    ps -ef | grep zookeeper
  2. /opt/apigee/var/run/apigee-ZooKeeper/apigee-zookeeper.pid ফাইল আছে কিনা চেক করুন। এটি থাকলে, এই ফাইলে লেখা প্রসেস আইডিটি লিখে নিন।
  3. ১ ও ২ নম্বর ধাপ থেকে নেওয়া প্রসেস আইডি তুলনা করুন। সেগুলি আলাদা হলে, এই সমস্যার কারণ হল apigee-zookeeper.pid file.-এ ভুল প্রসেস আইডি থাকা।

রেজোলিউশন

  1. apigee-zookeeper.pid ফাইল এডিট করুন এবং ভুল প্রসেস আইডির জায়গায় ps কমান্ড (উপরে #১ ধাপ) থেকে পাওয়া সঠিক প্রসেস আইডি বসান।
  2. ZooKeeper রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart

ZooKeeper লিডার নির্বাচন সংক্রান্ত সমস্যা

ডায়াগনসিস

ডায়াগনসিস করতে:

  1. সমস্যার জন্য ZooKeeper লগ /opt/apigee/var/log/apigee-zookeeper/zookeeper.log চেক করুন।
  2. কোনও কনফিগারেশন পরিবর্তন হয়েছে কিনা তা চেক করুন, যার ফলে লিডার নির্বাচনের ZooKeeper ব্যর্থ হতে পারে।
  3. /opt/apigee/apigee-zookeeper/conf/zoo.cfg চেক করুন এবং ক্লাস্টারের সব ZooKeeper-এর কাছে যেন server.# প্যারামিটারের জন্য সঠিক নম্বর ও IP অ্যাড্রেস থাকে তা নিশ্চিত করুন। এছাড়াও, মনে রাখবেন যে লিডার নির্বাচনের সফলতার জন্য কমপক্ষে ৩ জন ভোটার থাকতে হবে এবং ভোটারের সংখ্যা বিজোড় হতে হবে। যদি খুব কম ভোটার থাকে, যেমন, মাত্র ২ জন ভোটার, তাহলে ২ জন ভোটারের মধ্যে থেকে নেতা বেছে নেওয়ার জন্য কোরাম পূরণ করা যাবে না।

রেজোলিউশন

সাধারণত, ভুল কনফিগার করা myid-এর কারণে ZooKeeper নির্বাচন ব্যর্থ হয়। নির্বাচন সংক্রান্ত সমস্যার সমাধান করতে, ভুল কনফিগার করা ZooKeeper myid-এর সমাধান ব্যবহার করুন।

সমস্যাটি থেকে গেলে এবং আরও ডায়াগনসিস করার প্রয়োজন হলে, Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।