ElasticSearch FAQ 해결 - 1.시작 및 클라이언트 종속

3549 단어 검색 엔진 ES
이 문서는 ElasticSearch 7.0.1을 기반으로 합니다.

설정 IP를 외부 IP로 수정할 때 관련 오류


max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]


최대 열기 프로세스 수를 수정하고 루트 권한 사용자로 전환하며 /etc/security/limits.conf을 수정하여 elasticsearch를 시작하는 사용자에게 설정합니다(예를 들어 사용자는centos).
centos soft nproc 65536
centos hard nproc 65536
centos soft nofile 65536
centos hard nofile 65536
centos soft memlock 4000000
centos hard memlock 4000000


이후 /etc/profile을 수정하여 끝에 추가합니다.
ulimit -n 65535

centos 사용자로 전환

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]


루트 권한 사용자로 전환, /etc/security/limits.conf 수정, 추가:
vm.max_map_count=655360

그리고 sysctl -p을 실행합니다.

the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured


host를 수정한 후에 discovery를 설정해야 합니다. discovery.seed_hosts을 설정하는 것이 가장 간단합니다. 바로 집단의 모든elasticsearch 실례 주소입니다. 예를 들어
discovery.seed_hosts: ["10.238.6.67","10.238.6.68"]


SpringBoot에서 ElasticSearch 클라이언트를 사용할 때 ElasticSearch 의존도가 잘못되었습니다.


홈페이지 설정은 다음 마븐 의존을 도입하면 된다고 합니다.

    org.elasticsearch.client
    elasticsearch-rest-high-level-client
    7.0.1


그러나 Springboot 의존 환경에서 발생할 수 있는 오류:
 java.lang.NoClassDefFoundError: org/elasticsearch/common/xcontent/DeprecationHandler
    at com.lv.springboot.datasource.ClientUTis.main(ClientUTis.java:13)
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.common.xcontent.DeprecationHandler
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more

우리는 mvn dependency tree를 통해 의존이 옳지 않다는 것을 알 수 있다.
org.elasticsearch.client:elasticsearch-rest-high-level-client:7.0.1
|--org.elasticsearch:elasticsearch:5.6.16
|--org.elasticsearch.client:elasticsearch-rest-client:7.0.1
|--org.elasticsearch.plugin:parent-join-client:7.0.1
|--org.elasticsearch.plugin:aggs-matrix-stats-client:7.0.1
|--org.elasticsearch.plugin:rank-eval-client:7.0.1
|--org.elasticsearch.plugin:lang-mustache-client:7.0.1

SpringBoot의 Dependency Management를 살펴보니 org.elasticsearch:elasticsearch이 포함되어 있습니다(이하 섹션).
org.springframework.boot
spring-boot-dependencies
2.0.9.RELEASE


5.6.16





org.elasticsearch
elasticsearch
${elasticsearch.version}





하나의 해결 방법은 자신의 프로젝트에 dependency 관리를 추가하여springboot이라는 parent를 덮어쓰는 것이다.



org.elasticsearch
elasticsearch
7.0.1



좋은 웹페이지 즐겨찾기