Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Belirti
ZooKeeper işlemi başlatılamıyor.
Hata mesajları
ZooKeeper işlemini başlatmaya çalıştığınızda aşağıdaki hata mesajı döndürülür ZooKeeper'ın başlatılamadığını gösterir:
+ apigee-service apigee-zookeeper status apigee-service: apigee-zookeeper: Not running (DEAD) apigee-all: Error: status failed on [apigee-zookeeper]
Olası nedenler
Aşağıdaki tabloda bu sorunun olası nedenleri listelenmiştir:
Neden | Şunun için: |
---|---|
Yanlış yapılandırılmış ZooKeeper kimlik bilgilerim | Edge Private Cloud kullanıcıları |
ZooKeeper bağlantı noktası kullanılıyor | Edge Private Cloud kullanıcıları |
Apigee-zookeeper.pid dosyasında yanlış işlem kimliği | Edge Private Cloud kullanıcıları |
ZooKeeper Lideri Seçiminde Başarısızlık | Edge Private Cloud kullanıcıları |
Bu duruma ilişkin olası çözümleri görmek için tabloda bir bağlantıyı tıklayın.
Yanlış yapılandırılmış ZooKeeper myid kimliği
Aşağıdaki bölümlerde myid dosyasına genel bir bakış sağlanarak teşhisin ve ve yapılandırma sorunlarını çözer.
myid dosyasına genel bakış
Her bir ZooKeeper düğümünde iki dosya vardır:
- Aşağıdakilerin listesini içeren
/opt/apigee/apigee-zookeeper/conf/zoo.cfg
dosyası Kümedeki tüm ZooKeeper düğümleri için IP'ler.Örneğin,
/opt/apigee/apigee-zookeeper/conf/zoo.cfg
Kümenin bir bölümündeki 3 ZooKeeper düğümünün IP'leri aşağıdaki gibidir: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
dosyası, ilgili ZooKeeper düğümünün sunucu numarasına karşılık gelen metindir. Myid sunucu 1 "1" metnini içerir başka hiçbir şey yapmam gerekir. Kimlik, topluluk içinde benzersiz olmalıdır ve 1 ile 255 arasında bir değere sahip olmalıdır.Örneğin, ZooKeeper server.1'de
/opt/apigee/data/apigee-zookeeper/data/myid
dosyası yalnızca 1 metnini içermelidir aşağıdaki gibidir:$ cat myid 1
Teşhis
- ZooKeeper günlüğünde
/opt/apigee/var/log/apigee-zookeeper/zookeeper.log
hatalar. - "ID #, my id = #" için bağlantı kesildi." ifadesine benzer bir WARN (UYAR) mesajı görürseniz
aşağıdaki şekilde gösterildiği gibi, bu sorunun olası nedeni sunucu #
yanlış yapılandırılmış veya bozuktur.
[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
dosyasını kontrol edin ve Server.# ekleyin./opt/apigee/data/apigee-zookeeper/data/myid
dosyasını kontrol ederek metnin dosyası, 2. adımda belirtilen sunucu.# ile eşleşir.- Uyuşmazlık varsa ZooKeeper'ın başarısız olmasının nedenini belirlemişsinizdir başlatabilirsiniz.
Çözünürlük
myid dosyası yanlış yapılandırılmışsa myid dosyasını düzenleyin ve değeri Zoo.cfg dosyasındaki server.# parametresini temsil eden doğru metin.
ZooKeeper bağlantı noktası kullanılıyor
Teşhis
/opt/apigee/var/log/apigee-zookeeper/zookeeper.log
ZooKeeper günlüğünü kontrol et: hatalar.- Aşağıdaki istisnayı fark ederseniz
java.net.BindException: Address already in use
bağlantı noktası #2181'e bağlanırken, aşağıdaki şekilde gösterildiği gibi, ZooKeeper'ın bağlantı noktası 2181 başka bir işlem tarafından kullanılıyor. Bu nedenle ZooKeeper başlatılamadı.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 bağlantı noktası 2181'in gerçekten kullanıldığını onaylamak için aşağıdaki netstat komutunu kullanın
başka bir süreçle:
netstat -an | grep 2181
Çözünürlük
ZooKeeper bağlantı noktası 2181 hâlâ kullanılıyorsa bu sorunu gidermek için aşağıdaki adımları uygulayın sorun:
- 2181 numaralı bağlantı noktasında bekletilen işlemi bulmak için
netstat
komutunu kullanın. ZooKeeper bağlantı noktası 2181'i kullanan işlemi sonlandırın:$ netstat -antp | grep 2181 tcp 0 0 0.0.0.0:2181 0.0.0.0:* LISTEN 28016/java <defunct> $ kill -9 28016
- Varsa pid dosyalarını temizleyin ve dosyaları kilitleyin:
/opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid /opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.lock
- ZooKeeper'ı yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
Apigee-zookeeper.pid dosyasında yanlış işlem kimliği
ZooKeeper'ı durdurmaya/yeniden başlatmaya çalıştığınızda,
apigee-zookeeper.pid
dosyası, şu anki geçerli kimliği değil, eski/yanlış pid içeriyor
nasıl kullanacağınızı göstereceğim. ZooKeeper işlemi beklenmedik bir şekilde sonlandırılırsa veya
ve apigee-zookeeper.pid
dosyası silinmedi.
Teşhis
- Şu anda çalışan ZooKeeper işleminin işlem kimliğini almak için
ps
komutu:ps -ef | grep zookeeper
/opt/apigee/var/run/apigee-ZooKeeper/apigee-zookeeper.pid
dosyasının bulunup bulunmadığını kontrol edin gerekir. Dosya mevcutsa, bu dosyaya yazılan işlem kimliğini not edin.- 1. ve 2. adımda alınan işlem kimliklerini karşılaştırın. İkisi de farklıysa, bunun nedeni
apigee-zookeeper.pid file.
içindeki işlem kimliği yanlış.
Çözünürlük
- Apigee-zookeeper.pid dosyasını düzenleyin ve yanlış işlem kimliğini doğru ps komutundan alınan işlem kimliği (yukarıdaki 1. adım).
- ZooKeeper'ı yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
ZooKeeper Lideri Seçiminde Başarısızlık
Teşhis
Teşhis etmek için:
- ZooKeeper günlüğünde
/opt/apigee/var/log/apigee-zookeeper/zookeeper.log
hatalar. - ZooKeeper'ın başarısız olmasını sağlar.
/opt/apigee/apigee-zookeeper/conf/zoo.cfg
kontrol edin ve tüm reklam öğelerinin Kümedeki ZooKeeper'lar, server.# parametresi için uygun sayıda ve IP adresine sahip. Lider seçiminin başarılı olması için en az 3 seçmen olması gerektiğini unutmayın ve seçmen sayısı tek sayı olmalıdır. Seçmen sayısı çok azsa (ör. sadece 2 kişi) 2 seçmen arasından bir lider belirlemek için yeterli çoğunluk elde edilemez.
Çözünürlük
ZooKeeper seçim hatası, genellikle yanlış yapılandırılmış bir myid'den kaynaklanır. Çözünürlüğü şurada kullanın: Seçim başarısızlığını ele almak için zoKeeper kimlik bilgilerim yanlış yapılandırılmış.
Sorun devam ederse ve daha fazla teşhis gerekirse Apigee Edge Destek Ekibi ile iletişime geçin.