ElasticSearch 클러스터 노드 확장 알림 Master에 가입 요청 보내기 실패
6297 단어 ElasticSearch
기존 환경
이 기기의 위조 집단은 3개의 노드로 구성된다(slave-9200,slave-9201,slave-9202), 3개의 노드 설정은 각각 다음과 같다.
# ===slave-9200 ===
cluster.name: my-cluster
node.name: slave-9200
node.master: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-credentials: true
# ===slave-9201 ===
cluster.name: my-cluster
node.name: slave-9201
network.host: 0.0.0.0
http.port: 9201
transport.tcp.port: 9301
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
# ===slave-9202 ===
cluster.name: my-cluster
node.name: slave-9202
network.host: 0.0.0.0
http.port: 9202
transport.tcp.port: 9302
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
헤드 플러그인을 통해 다음 그림과 같이 클러스터 상태를 볼 수 있습니다.
확장 수요
추가 확장 slave-9203, slave-9204 두 노드
업그레이드 프로세스
1、장es_slave1 두 부 복사, 각각 slave_3, slave4, Linux 명령은 다음과 같습니다.
cp -rf es_slave1 es_slave3
cp -rf es_slave1 es_slave4
복사가 끝나면 linux의 ls-l 명령을 통해 ES 폴더 디렉터리를 다음과 같이 볼 수 있습니다.
drwxr-xr-x@ 13 jay-xqt staff 442 10 13 14:59 es_slave1
drwxr-xr-x@ 13 jay-xqt staff 442 10 13 14:59 es_slave2
drwxr-xr-x@ 13 jay-xqt staff 442 10 13 15:28 es_slave3
drwxr-xr-x@ 13 jay-xqt staff 442 10 13 15:41 es_slave4
2, 각각 slave_ 구성3,slave_4의elasticsearch.yml
# ===slave-9203 ===
cluster.name: my-cluster
node.name: slave-9203
network.host: 0.0.0.0
http.port: 9203
transport.tcp.port: 9303
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
# ===slave-9204 ===
cluster.name: my-cluster
node.name: slave-9204
network.host: 0.0.0.0
http.port: 9204
transport.tcp.port: 9304
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
discovery.zen.minimum_master_nodes: 2
3. 각각 선후로 슬레이브-9203과 슬레이브-9204 노드를 시작했지만 슬레이브-9203을 시작할 때 오류를 보고했다.
[2018-10-13T15:30:57,562][INFO ][o.e.d.z.ZenDiscovery ] [slave-9203] failed to send join request to master [{slave-9201}{EvW-pPzMQu2X4Wxj9tybew}{zaJboJqtS_SbCbzm9pxINQ}{192.168.0.101}{192.168.0.101:9301}], reason [RemoteTransportException[[slave-9201][192.168.0.101:9301][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {slave-9203}{EvW-pPzMQu2X4Wxj9tybew}{NICrtQeUQG-XuT9OyYRTsw}{192.168.0.101}{192.168.0.101:9303}, found existing node {slave-9201}{EvW-pPzMQu2X4Wxj9tybew}{zaJboJqtS_SbCbzm9pxINQ}{192.168.0.101}{192.168.0.101:9301} with the same id but is a different node instance]; ]
[2018-10-13T15:31:00,591][INFO ][o.e.d.z.ZenDiscovery ] [slave-9203] failed to send join request to master [{slave-9201}{EvW-pPzMQu2X4Wxj9tybew}{zaJboJqtS_SbCbzm9pxINQ}{192.168.0.101}{192.168.0.101:9301}], reason [RemoteTransportException[[slave-9201][192.168.0.101:9301][internal:discovery/zen/join]]; nested: IllegalArgumentException[can't add node {slave-9203}{EvW-pPzMQu2X4Wxj9tybew}{NICrtQeUQG-XuT9OyYRTsw}{192.168.0.101}{192.168.0.101:9303}, found existing node {slave-9201}{EvW-pPzMQu2X4Wxj9tybew}{zaJboJqtS_SbCbzm9pxINQ}{192.168.0.101}{192.168.0.101:9301} with the same id but is a different node instance]; ]
오류 알림 {192.168.0.101} {192.168.0.101:9301} with the same id but is a different node instance]에서 알 수 있듯이 es_slave1 복사해 온es_slave3에도 같은 node 노드가 있는데 id가 같아서 충돌을 일으켰습니다. 실제로es_slave3의 node는 다시 분배해야 하기 때문에 es_를slave3의 node 삭제.
솔루션
복제된 slave_3 폴더의 데이터 디렉터리에서 내용을 삭제합니다. 구체적인 경로는/Users/jay-xqt/Downloads/myapp/es_slave/es_slave3/data/, 안에 nodes 폴더가 있습니다. 이 폴더를 삭제하면 됩니다.그리고 슬레이브-9203을 다시 시작하면 문제가 해결됩니다.
[2018-10-13T15:36:56,360][INFO ][o.e.d.DiscoveryModule ] [slave-9203] using discovery type [zen]
[2018-10-13T15:36:57,145][INFO ][o.e.n.Node ] [slave-9203] initialized
[2018-10-13T15:36:57,146][INFO ][o.e.n.Node ] [slave-9203] starting ...
[2018-10-13T15:37:02,368][INFO ][o.e.t.TransportService ] [slave-9203] publish_address {192.168.0.101:9303}, bound_addresses {[::]:9303}
[2018-10-13T15:37:02,380][INFO ][o.e.b.BootstrapChecks ] [slave-9203] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
[2018-10-13T15:37:05,662][INFO ][o.e.c.s.ClusterService ] [slave-9203] detected_master {slave-9201}{EvW-pPzMQu2X4Wxj9tybew}{zaJboJqtS_SbCbzm9pxINQ}{192.168.0.101}{192.168.0.101:9301}, added {{slave-9200}{cT55VEW8Tz6vwksba2WDiQ}{9iAMeRhTQ16uo11O5bFk8Q}{192.168.0.101}{192.168.0.101:9300},{slave-9202}{zOJljPRWSpCRHJwtl_0QSQ}{Z8u7LzvIRP-zKRxGObw-7w}{192.168.0.101}{192.168.0.101:9302},{slave-9201}{EvW-pPzMQu2X4Wxj9tybew}{zaJboJqtS_SbCbzm9pxINQ}{192.168.0.101}{192.168.0.101:9301},}, reason: zen-disco-receive(from master [master {slave-9201}{EvW-pPzMQu2X4Wxj9tybew}{zaJboJqtS_SbCbzm9pxINQ}{192.168.0.101}{192.168.0.101:9301} committed version [114]])
[2018-10-13T15:37:06,027][INFO ][o.e.h.n.Netty4HttpServerTransport] [slave-9203] publish_address {192.168.0.101:9203}, bound_addresses {[::]:9203}
[2018-10-13T15:37:06,028][INFO ][o.e.n.Node ] [slave-9203] started
이 동시에 다른 노드 로그에는 새 노드가 추가된 클러스터 로그가 인쇄됩니다.
[2018-10-13T15:37:05,648][INFO ][o.e.c.s.ClusterService ] [slave-9200] added {{slave-9203}{DK8bum6BTQya8osXyQMv3A}{yF1-sxNLS1uBO_7FN1wZ-w}{192.168.0.101}{192.168.0.101:9303},}, reason: zen-disco-receive(from master [master {slave-9201}{EvW-pPzMQu2X4Wxj9tybew}{zaJboJqtS_SbCbzm9pxINQ}{192.168.0.101}{192.168.0.101:9301} committed version [114]])
확장 결과
결과에서 알 수 있듯이 각 노드 인덱스 분할의 분배는 새로 추가된 노드마다 다시 한 번 분배해야 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spring-data-elasticsearch 페이지 조회부록: 1. 이름에서 알 수 있듯이QueryBuilder는 검색 조건, 필터 조건을 구축하는 데 사용되고 SortBuilder는 정렬을 구축하는 데 사용된다. 예를 들어 우리는 어느 위치에서 100미터 범위 내의 모...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.