2016-08-11 13 views
4

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のコンテンツ/名前などの追加情報を印刷する方法はありますか?

答えて

4

ZooKeeperを実行しているサーバーからすべてのzookeeperスナップショットとログファイルを削除することで、この問題を解決できました。なぜこれが違いを生み出したのか分かりませんが、過去22時間は正常に動作しています。

+0

Zookeeperのスナップショットとログを削除しても、サーバーは正常に動作していますか?それとも、あなたは時々それをしなくてはなりませんか? – zochhuana

+0

しばらくしてからクラッシュする。問題は永久に解決されていませんでした。ログとスナップショットの削除は毎回役に立ちますが、ZooKeeperのすべてのノードも削除しようとしています。 – Nixxon

関連する問題