ElasticSearch FAQ 해결 - 1.시작 및 클라이언트 종속
3549 단어 검색 엔진 ES
설정 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
centos soft nproc 65536
centos hard nproc 65536
centos soft nofile 65536
centos hard nofile 65536
centos soft memlock 4000000
centos hard memlock 4000000
ulimit -n 65535
vm.max_map_count=655360
discovery.seed_hosts: ["10.238.6.67","10.238.6.68"]
홈페이지 설정은 다음 마븐 의존을 도입하면 된다고 합니다.
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