티스토리 뷰

Elasticsearch Node의 역할을 설정하지 않고 실행하게 되면, 해당 Node는 Master, Data 역할을 부여받게 됩니다. 이후 elasticsearch.yml 파일을 수정해서 Master 역할만 설정하게 되면, 에러가 발생하게 되고 이를 해결한 과정입니다.

elasticsearch.yml 파일을 수정하지 않고, 그대로 실행

첫 번째로 elasticsearch.yml 파일을 수정하지 않고 실행하게 되면, Master 및 Data 역할을 포함한 모든 역할을 맡은 채로 실행됩니다.

$ bin/elasticsearch # Elasticsearch Node 실행

elasticsearch.yml 파일에 node.roles를 master로 설정하여 실행

elasticsearch.yml 파일을 아래와 같이 수정하겠습니다.

cluster.name: hyo-cluster
node.name: es1
node.roles: [ "master" ]

위의 설정을 통해 실행하게 되면, java.lang.IllegalStateException: node does not have the data role but has shard data 에러가 발생하게 되는데요. 이를 해석해보면, Data 역할을 받지 않았는데, 샤드 데이터를 가지고 있다는 에러 메시지입니다.

image

해결 방법

위의 에러 로그를 자세히 보시면, Use 'elasticsearch-node repurpose' tool to clean up이라는 메시지가 있는데요. 말 그대로 repurpose 명령어를 입력하면, 이를 해결할 수 있습니다.

$ bin/elasticsearch-node repurpose

위의 명령어를 통해 아래의 샤드 데이터를 정리할 것 인지에 대해 동의만 해주시면, 샤드 된 데이터가 삭제됩니다.

스크린샷 2021-11-13 오후 2 04 05

Master 역할로 실행됐는지 확인하기

그리고 Elasticsearch Node를 다시 실행하시면, 정상적으로 실행이 되며 Master 역할을 부여받은 것을 확인할 수 있습니다.

$ bin/elasticsearch # Elasticsearch Node 실행

스크린샷 2021-11-13 오후 2 05 47

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함