আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
লক্ষণ
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 myid
নিম্নলিখিত বিভাগগুলিতে myid ফাইলের একটি সংক্ষিপ্ত বিবরণ দেওয়া হয়েছে এবং ভুল কনফিগারেশনজনিত সমস্যাগুলি কীভাবে নির্ণয় ও সমাধান করতে হয় তা বর্ণনা করা হয়েছে।
myid ফাইলের সংক্ষিপ্ত বিবরণ
প্রতিটি ZooKeeper নোডে দুটি ফাইল থাকে:
-
/opt/apigee/apigee-zookeeper/conf/zoo.cfgফাইলটিতে ক্লাস্টারের সমস্ত ZooKeeper নোডের আইপি-র একটি তালিকা থাকে।উদাহরণস্বরূপ, যদি
/opt/apigee/apigee-zookeeper/conf/zoo.cfgফাইলটিতে ক্লাস্টারের অংশ ৩টি 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
-
/opt/apigee/data/apigee-zookeeper/data/myidফাইলটিতে একটিমাত্র লাইনের টেক্সট থাকে, যা সেই নির্দিষ্ট ZooKeeper নোডটির সার্ভার নম্বরকে নির্দেশ করে। সার্ভার ১-এর myid-তে শুধুমাত্র "1" লেখাটি থাকবে, অন্য কিছু নয়। এই আইডিটি পুরো এনসেম্বলের মধ্যে অনন্য হতে হবে এবং এর মান ১ থেকে ২৫৫-এর মধ্যে হওয়া উচিত।উদাহরণস্বরূপ, ZooKeeper server.1-এ,
/opt/apigee/data/apigee-zookeeper/data/myidফাইলটিতে নিচে দেখানো অনুযায়ী শুধু 1 লেখাটি থাকা উচিত:$ cat myid 1
রোগ নির্ণয়
- ত্রুটির জন্য ZooKeeper লগ
/opt/apigee/var/log/apigee-zookeeper/zookeeper.logপরীক্ষা করুন। - যদি আপনি নীচের চিত্রে দেখানো “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)
/opt/apigee/apigee-zookeeper/conf/zoo.cfgফাইলটি পরীক্ষা করুন এবং বর্তমান ZooKeeper নোডটির server.# লিখে নিন।-
/opt/apigee/data/apigee-zookeeper/data/myidফাইলটি পরীক্ষা করুন এবং দেখুন এই ফাইলের লেখাটি ধাপ #২-এ উল্লিখিত server.#-এর সাথে মেলে কি না। - যদি কোনো অমিল থাকে, তাহলে আপনি ZooKeeper চালু না হওয়ার কারণটি শনাক্ত করতে পেরেছেন।
সমাধান
যদি myid ফাইলটি ভুলভাবে কনফিগার করা থাকে, তাহলে myid ফাইলটি সম্পাদনা করুন এবং zoo.cfg-তে থাকা server.# প্যারামিটারটির প্রতিনিধিত্বকারী সঠিক টেক্সট দিয়ে এর মানটি প্রতিস্থাপন করুন।
ZooKeeper পোর্ট ব্যবহার করা হচ্ছে
রোগ নির্ণয়
- ত্রুটির জন্য ZooKeeper লগ
/opt/apigee/var/log/apigee-zookeeper/zookeeper.logদেখুন। - যদি আপনি নিচের চিত্রে দেখানো অনুযায়ী পোর্ট #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)
- ZooKeeper পোর্ট 2181 সত্যিই অন্য কোনো প্রসেস দ্বারা ব্যবহৃত হচ্ছে কিনা তা নিশ্চিত করতে নিচের netstat কমান্ডটি ব্যবহার করুন:
netstat -an | grep 2181
সমাধান
যদি ZooKeeper পোর্ট 2181 এখনও ব্যবহৃত হয়ে থাকে, তাহলে এই সমস্যাটি সমাধান করতে নিচের ধাপগুলো অনুসরণ করুন:
-
netstatকমান্ড ব্যবহার করে সেই প্রসেসটি খুঁজুন যেটি পোর্ট 2181 দখল করে রেখেছে। 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
- যদি pid এবং lock ফাইল থাকে, তবে সেগুলি মুছে ফেলুন:
/opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid /opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.lock
- চিড়িয়াখানার রক্ষক পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
apigee-zookeeper.pid ফাইলে ভুল প্রসেস আইডি
যখন আপনি ZooKeeper বন্ধ বা পুনরায় চালু করার চেষ্টা করেন, তখন তা ব্যর্থ হতে পারে কারণ apigee-zookeeper.pid ফাইলটিতে বর্তমানে চলমান ZooKeeper প্রসেসের pid-এর পরিবর্তে পুরোনো বা ভুল pid থাকে। এমনটা হতে পারে যদি কোনো কারণে ZooKeeper প্রসেসটি অপ্রত্যাশিতভাবে বা হঠাৎ বন্ধ হয়ে যায় এবং apigee-zookeeper.pid ফাইলটি মুছে ফেলা না হয়।
রোগ নির্ণয়
-
psকমান্ডটি চালিয়ে বর্তমানে চলমান ZooKeeper প্রসেসের প্রসেস আইডিটি জেনে নিন:ps -ef | grep zookeeper
-
/opt/apigee/var/run/apigee-ZooKeeper/apigee-zookeeper.pidফাইলটি আছে কিনা তা পরীক্ষা করুন। যদি ফাইলটি থাকে, তাহলে এতে লেখা প্রসেস আইডিটি লিখে রাখুন। - ধাপ #১ এবং #২ থেকে নেওয়া প্রসেস আইডিগুলো তুলনা করুন। যদি সেগুলো ভিন্ন হয়, তাহলে এই সমস্যার কারণ হলো
apigee-zookeeper.pid file.
সমাধান
- apigee-zookeeper.pid ফাইলটি সম্পাদনা করুন এবং ps কমান্ড থেকে প্রাপ্ত সঠিক প্রসেস আইডি (উপরের ধাপ #১) দিয়ে ভুল প্রসেস আইডিটি প্রতিস্থাপন করুন।
- চিড়িয়াখানার রক্ষক পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
চিড়িয়াখানার রক্ষক নেতার নির্বাচনে ব্যর্থতা
রোগ নির্ণয়
রোগ নির্ণয় করতে:
- ত্রুটির জন্য ZooKeeper লগ
/opt/apigee/var/log/apigee-zookeeper/zookeeper.logপরীক্ষা করুন। - এমন কোনো কনফিগারেশন পরিবর্তন করা হয়েছে কিনা তা পরীক্ষা করুন, যার কারণে ZooKeeper-এ লিডার নির্বাচন ব্যর্থ হতে পারে।
-
/opt/apigee/apigee-zookeeper/conf/zoo.cfgফাইলটি পরীক্ষা করুন এবং নিশ্চিত করুন যে ক্লাস্টারের সমস্ত ZooKeeper-এর server.# প্যারামিটারের জন্য সঠিক নম্বর এবং আইপি অ্যাড্রেস রয়েছে। আরও মনে রাখবেন যে, লিডার নির্বাচন সফল হওয়ার জন্য ন্যূনতম ৩ জন ভোটার থাকা প্রয়োজন এবং ভোটারের সংখ্যা বিজোড় হতে হবে। যদি ভোটারের সংখ্যা খুব কম হয়, যেমন মাত্র ২ জন, তবে শুধুমাত্র ২ জন ভোটারের মধ্যে থেকে লিডার নির্ধারণের জন্য কোরাম গঠিত হতে পারে না।
সমাধান
সাধারণত, ভুলভাবে কনফিগার করা myid-এর কারণে ZooKeeper নির্বাচন ব্যর্থ হয়। এই নির্বাচন ব্যর্থতা সমাধানের জন্য 'Misconfigured ZooKeeper myid' অংশে দেওয়া সমাধানটি ব্যবহার করুন।
যদি সমস্যাটি অব্যাহত থাকে এবং আরও বিশ্লেষণের প্রয়োজন হয়, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।