아래는 서버 log 이다.
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [] at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:298) ~[elasticsearch-1.3.2.jar:na]위와 같은 Exception이 발생하며 쿼리가 되지 않았다.
설정된 노드중에 사용가능한 노드가 없다 라는 메시지 인것 같다
Elasticsearch log파일에는 아래와 같은 에러 메시지가 있었다.
[2015-08-13 11:33:02,020][WARN ][transport.netty ] [es-node1] exception caught on transport layer [[id: 0x31ef8136, /10.112.133.167:44057 :> /10.112.133.166:9300]], closing connection
java.io.StreamCorruptedException: invalid internal transport message format, got (ff,ed,ff,fd)
아무튼 클러스터에 정상적으로 접근을 못하는 것 같다.음.... 첫번째 로그 파일(서버로그)을 좀더 조금더 살펴보니, 이상한점을 발견했다.
뭔가 클러스터 이름에 엄청난 공백이 있었다... 알고보니..
JAVA client api를 사용해 커넥션을 생성할때, properties 파일에 있는 Elasticsearch 정보 속성값을 이용해 생성한다. 이때 클러스터이름에 위 properties 파일에서 보이는것처럼 공백이 포함된 클러스터이름으로 커넥션을 생성해 버렸고, 따라서 그 클러스터에 제대로 접근하지 못해 발생했던 이슈였던 것이다..
공백을 제거하니 정상적으로 커넥션이 생성되어 쿼리가 되었다.
댓글 없음:
댓글 쓰기