2016-08-11 2 views
4

내 Zookeeper는 컴퓨터가 처리 할 준비가 될 때까지 각 노드에 관련 작업 데이터를 보유하여 여러 작업에 대한 몇 가지 다른 큐를 제어합니다. 전체 서비스를 중지하면 ZooKeeper를 다시 시작한 후에도 아무 작업도 시작할 수 없습니다. 그러나 이러한 작업 중 일부는 사육사 로그에 다음과 같은 메시지가 충돌 사육사가 발생할 것 : 나는 원래 설정 사람에서 접수하고 같은ZooKeeper에서 EndOfStreamException이 계속 발생하여 충돌이 발생합니다.

WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - 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 

내 사육사의 지식은 매우 제한적이다.

나는, (아무 소용의/남은 한 50K + 노드를 삭제) 일부 영향을 미칠 것 같았다 사육사 쉘에 rmr [path]로 노드를 많이 삭제하려고 노력하지만 매일 충돌 유지하고 있으며, 지난 밤에 동일한 오류/충돌이 발생하기 전에 2 분 이상 실행하지 못했습니다.

원인을 찾는 방법은 무엇입니까?

나는 그것이 수신되는 데이터 또는 저장된 데이터/노드에 대한 몇 가지 일반적인 문제점이라고 확신한다. 디스크는 92 % 만 가득합니다. 나는 또한이 게시물을 발견 : Zookeeper keeps getting the WARN: "caught end of stream exception",하지만 해결책은 나에게 많은 의미가 없습니다. 또한 내 znodes에 보관 된 메시지가 1MB 이상은 없다는 것을 확신하지만이를 확인하는 방법을 모르겠습니다.

충돌하기 전에 작동중인 znode의 내용/이름과 같은 추가 정보를 인쇄 할 수 있도록 ZooKeeper 로그를 변경할 수있는 방법이 있습니까?

답변

4

나는 모든 사육사 스냅 샷과 로그 파일을 ZooKeeper를 실행하는 서버에서 삭제함으로써이 문제를 해결할 수있었습니다. 나는 이것이 왜 차이를 만들 었는지 모르지만 지난 22 시간 동안 잘 돌아갔다.

+0

사육사 스냅 샷 및 로그를 삭제 한 후에도 서버가 계속 정상적으로 실행되고 있습니까? 아니면 수시로해야합니까? – zochhuana

+0

한동안 충돌이 계속됩니다. 문제가 영구적으로 해결되지 않았습니다. 로그와 스냅 샷을 삭제하는 것은 매번 도움이되는 것처럼 보이지만 이제는 ZooKeeper에서 모든 노드를 삭제하려고합니다. – Nixxon

관련 문제