My Zookeeperは、コンピュータが処理する準備ができるまで各ノードに関連するジョブデータを保持することによって、異なるジョブのいくつかの異なるキューを制御しています。 ZooKeeperが起動できないようなサービス全体を停止すると、再起動後に正常に動作します。しかし、これらのジョブのいくつかは、ZooKeeperのログに次のメッセージでクラッシュするのZooKeeperを引き起こすように見える:私はもともとそれを設定男から引き継いでいますようZooKeeperがEndOfStreamExceptionを取得し続けるとクラッシュする
WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]349] - caught end of stream exception
EndOfStreamException: Unable to read additional data from client sessionid 0x15677f740ad002a, likely client has closed socket
at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:220)
at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
at java.lang.Thread.run(Thread.java:745)
INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Closed socket connection for client /127.0.0.1:46998 which had sessionid 0x15677f740ad002a
マイZooKeeperの知識は、非常に限られています。
私は飼い猫のシェルでrmr [path]
のノードをたくさん削除しようとしましたが、何らかの効果があるように見えました(50k +ノードは削除されています)。私は、同じエラー/クラッシュが発生する前に、数分以上実行することができませんでした。
これを引き起こす原因を確認するにはどうすればよいですか?
私は確かにそれが受信されるデータ、または格納されたデータ/ノードにいくつかの一般的な問題です。ディスクは92%しかいっぱいです。 私もこの記事を見つけました:Zookeeper keeps getting the WARN: "caught end of stream exception"しかし、解決策は私にとってはあまり意味がありません。また、私のzノードに保管されているメッセージはどれも1MB以上はないとは確信していますが、これを確認する方法は不明です。
ZooKeeperログを変更して、クラッシュする前に動作しているznodeのコンテンツ/名前などの追加情報を印刷する方法はありますか?
Zookeeperのスナップショットとログを削除しても、サーバーは正常に動作していますか?それとも、あなたは時々それをしなくてはなりませんか? – zochhuana
しばらくしてからクラッシュする。問題は永久に解決されていませんでした。ログとスナップショットの削除は毎回役に立ちますが、ZooKeeperのすべてのノードも削除しようとしています。 – Nixxon