ElasticSearch 설치
elasticsearch는 무설정 설치가 가능하다. 홈페이지에서 다운로드 받아서 압축을 풀고 바로 실행하면 된다.- download : https://www.elastic.co/downloads/elasticsearch
- 참고 : ElasticSearch in 5 minutes - ElasticSearch Tutorial.com
- 쿠...sal: [컴] Windows 에서 ElasticSearch 설치
Java API 사용
client / server elastic version
되도록이면 major 버전을 맞추라고 한다. elasticSearch 의 client 와 elasticSearch server 의 major 버전을 맞추라고 한다.Node node = NodeBuilder.nodeBuilder().client(true).node(); Client client = node.client(); SearchResponse sr = client.prepareSearch("logstash-2015.03.16") .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(QueryBuilders.matchAllQuery()) .execute() .actionGet(); node.close();
JVM 버전 문제
아래 글에서 얘기 하듯이 JVM 의 버전이 달라도 exception 이 발생하는데, 댓글에 보면 java 가 InetAddress 를 serialized 할 때 생기는 버그인데 이것을 elasticsearch 가 이용하기 때문이란다.node 간 jvm 버전
node 들끼리 jvm 버전도 맞춰야 한다그래서 아래의 case 에 대한 버전을 맞춰야 한다.
- elasticsearch server 버전 ---- client elasticsearch library version(1.5.0)
- client jvm 버전(1.7.0_51) ---- elasticsearch server jvm 버전(??)
RemoteTransportException[Failed to deserialize exception response from stream]; nested: TransportSerializationException[Failed to deserialize exception response from stream]; nested: EOFException;
target node
위처럼 node 를 사용하는 경우에는 host ip 등을 직접 적어줄 필요가 없다. cluster name 만 설정해 주면 알아서 retrieve 할 target host(node) 를 찾아간다.cluster name 설정
/src/main/resources/elasticsearch.yml 을 만들고cluster.name: myclustername만 적어줘도 clustername 이 변경된다.
TransportClient 가 NodeBuilder 보다 나은 점, NodeBuilder 가 TransportClient 보다 나은 점을 이야기 해 준다. 그리고 spring 에 spring-elasticsearch 가 있다고 이야기 해 준다.
Node, Transport Client As a Singleton
Node 나 Transport Client 는 singleton 으로 사용하면 된다고 한다. 위의 글의 kimchy 의 답변을 확인하자.
References
- Client, Java API, ElasticSearch
- ElasticSearch: Java API | Javalobby
댓글 없음:
댓글 쓰기