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 এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা
ZooKeeper পোর্ট ব্যবহার করা হচ্ছে এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা
apigee-zookeeper.pid ফাইলে ভুল প্রক্রিয়া আইডি এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা
ZooKeeper নেতা নির্বাচন ব্যর্থ এজ প্রাইভেট ক্লাউড ব্যবহারকারীরা

সেই কারণের সম্ভাব্য রেজোলিউশন দেখতে টেবিলের একটি লিঙ্কে ক্লিক করুন।

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

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

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

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

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

    উদাহরণস্বরূপ, যদি /opt/apigee/apigee-zookeeper/conf/zoo.cfg এ ক্লাস্টারের 3টি ZooKeeper নোডের আইপি থাকে নিম্নরূপ:

    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 নোডের সার্ভার নম্বরের সাথে মিলে যায়। সার্ভার 1-এর myid-এ "1" লেখা থাকবে এবং অন্য কিছু থাকবে না। আইডিটি অবশ্যই সংযুক্তির মধ্যে অনন্য হতে হবে এবং 1 থেকে 255 এর মধ্যে একটি মান থাকতে হবে৷

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

    $ cat myid
    1

রোগ নির্ণয়

  1. ত্রুটির জন্য ZooKeeper লগ /opt/apigee/var/log/apigee-zookeeper/zookeeper.log পরীক্ষা করুন৷
  2. আপনি যদি নীচের চিত্রে দেখানো “আইডি #, আমার আইডি = # এর জন্য সংযোগ বিচ্ছিন্ন হয়ে গেছে”-এর মতো সতর্ক বার্তা দেখতে পান, তাহলে এই সমস্যার সম্ভাব্য কারণ হতে পারে যে 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 নোডের জন্য সার্ভারটি নোট করুন।
  4. /opt/apigee/data/apigee-zookeeper/data/myid ফাইলটি পরীক্ষা করুন এবং দেখুন এই ফাইলের পাঠ্যটি সার্ভারের সাথে মেলে কিনা।# ধাপ #2 এ উল্লেখ করা হয়েছে।
  5. যদি কোনো মিল না থাকে, তাহলে আপনি ZooKeeper শুরু করতে ব্যর্থ হওয়ার কারণ চিহ্নিত করেছেন।

রেজোলিউশন

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

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

রোগ নির্ণয়

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

রেজোলিউশন

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

  1. 2181 পোর্টে থাকা প্রক্রিয়াটি খুঁজে পেতে netstat কমান্ডটি ব্যবহার করুন। ZooKeeper পোর্ট 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. ZooKeeper পুনরায় চালু করুন:
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart

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

আপনি যখন ZooKeeper বন্ধ/পুনঃসূচনা করার চেষ্টা করেন, তখন এটি ব্যর্থ হতে পারে কারণ apigee-zookeeper.pid ফাইলে পুরানো/ভুল পিড রয়েছে এবং বর্তমানে চলমান ZooKeeper প্রক্রিয়াটির নয়। এটি ঘটতে পারে যদি ZooKeeper প্রক্রিয়াটি কোনো কারণে অপ্রত্যাশিতভাবে বা আকস্মিকভাবে বন্ধ হয়ে যায় এবং apigee-zookeeper.pid ফাইলটি মুছে ফেলা না হয়।

রোগ নির্ণয়

  1. ps কমান্ডটি চালিয়ে বর্তমানে চলমান ZooKeeper প্রক্রিয়াটির প্রক্রিয়া আইডি পান:
    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. 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 চেক করুন এবং নিশ্চিত করুন যে ক্লাস্টারের সমস্ত ZooKeepers সার্ভারের জন্য সঠিক নম্বর এবং IP ঠিকানা আছে।# প্যারামিটার। এছাড়াও মনে রাখবেন যে নেতা নির্বাচন সফল করার জন্য ন্যূনতম 3 জন ভোটার থাকতে হবে এবং ভোটারদের সংখ্যা বিজোড় সংখ্যায় হতে হবে। যদি খুব কম ভোটার থাকে, মাত্র 2 ভোটারের মতো, তবে শুধুমাত্র 2 ভোটারের মধ্যে একজন নেতা নির্ধারণের জন্য এটি কোরামে আসতে পারে না।

রেজোলিউশন

সাধারণত, ZooKeeper নির্বাচন ব্যর্থতা একটি ভুল কনফিগার করা myid দ্বারা সৃষ্ট হয়৷ নির্বাচনের ব্যর্থতা মোকাবেলায় ভুল কনফিগার করা ZooKeeper myid- এ রেজোলিউশন ব্যবহার করুন।

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