CentOS/RHEL, Ubuntu 및 Debian에 ElasticSearch(다중 노드) 클러스터를 설치하는 방법

CentOS/RHEL, Ubuntu 및 Debian에 ElasticSearch(다중 노드) 클러스터를 설치하는 방법

2022-10-18 last update

6 minutes reading Java cluster database BIG-DATA elasticsearch search
ElasticSearch는 유연하고 강력한 오픈 소스 분산 실시간 검색 및 분석 엔진입니다. 간단한 API 세트를 사용하여 전체 텍스트 검색 기능을 제공합니다. Elastic search는 Apache 2 라이선스에 따라 무료로 사용할 수 있으며, 이는 유연성이 가장 뛰어납니다. 이 문서는 CentOS, RHEL, Ubuntu 및 Debian 시스템에서 ElasticSearch 다중 노드 클러스터를 구성하는 데 도움이 될 것입니다. ElasticSearch에서 다중 노드 클러스터는 동일한 네트워크에서 동일한 클러스터 이름으로 여러 단일 노드 클러스터를 구성하는 것입니다.

네트워크 시나리오

다음 IP와 호스트 이름을 가진 세 개의 서버가 있습니다. 모든 서버는 동일한 LAN에서 실행 중이며 ip와 호스트 이름을 모두 사용하여 서로의 모든 서버에 액세스할 수 있습니다.
  192.168.10.101  NODE_1
  192.168.10.102  NODE_2
  192.168.10.103  NODE_3

Java 확인(모든 노드)

Java는 ElasticSearch를 설치하기 위한 기본 요구 사항입니다. 따라서 모든 노드에 Java가 설치되어 있는지 확인하십시오.
# java -version 

java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
노드 시스템에 Java가 설치되어 있지 않은 경우 다음 링크 중 하나를 사용하여 먼저 설치하십시오. Install Java 8 on CentOS/RHEL 7/6/5
Install Java 8 on Ubuntu

ElasticSearch 다운로드(모든 노드)

이제 official download page 에서 모든 노드 시스템의 최신 ElasticSearch 아카이브를 다운로드하십시오. 이 기사의 마지막 업데이트 시점에서 ElasticSearch 1.4.2 버전은 다운로드할 수 있는 최신 버전입니다. 다음 명령을 사용하여 ElasticSearch 1.4.2를 다운로드합니다.
$ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.2.tar.gz
이제 모든 노드 시스템에서 ElasticSearch를 추출합니다.
$ tar xzf elasticsearch-1.4.2.tar.gz

ElasticSearch 구성

이제 모든 노드 시스템에서 ElasticSearch를 설정해야 합니다. ElasticSearch는 "elasticsearch"를 기본 클러스터 이름으로 사용합니다. 명명 대화에 따라 변경하는 것이 좋습니다.
$ mv elasticsearch-1.4.2 /usr/share/elasticsearch
$ cd /usr/share/elasticsearch
클러스터 이름을 변경하려면 각 노드의 config/elasticsearch.yml 파일을 편집하고 다음 값을 업데이트하십시오. 노드 이름은 동적으로 생성되지만 고정된 사용자 친화적인 이름을 유지하려면 이름도 변경하십시오.

NODE_1에서

NODE_1(192.168.10.101) 시스템에서 Elasticsearch 클러스터 구성을 편집합니다.
$ vim config/elasticsearch.yml
  cluster.name: TecAdminCluster
  node.name: "NODE_1"

NODE_2에서

NODE_2(192.168.10.102) 시스템에서 Elasticsearch 클러스터 구성을 편집합니다.
$ vim config/elasticsearch.yml
  cluster.name: TecAdminCluster
  node.name: "NODE_2"

NODE_3에서

NODE_3(192.168.10.103) 시스템에서 Elasticsearch 클러스터 구성을 편집합니다.
$ vim config/elasticsearch.yml
  cluster.name: TecAdminCluster
  node.name: "NODE_3"

ElasticSearch-Head 플러그인 설치(모든 노드)

elasticsearch-head는 Elastic Search 클러스터를 탐색하고 상호 작용하기 위한 웹 프런트 엔드입니다. 다음 명령을 사용하여 모든 노드 시스템에 이 플러그인을 설치하십시오.
$ bin/plugin --install mobz/elasticsearch-head

ElasticSearch 클러스터 시작(모든 노드)

ElasticSearch 클러스터 설정이 완료되었으므로. 모든 노드에서 다음 명령을 사용하여 ElasticSearch 클러스터를 시작합니다.
$ ./bin/elasticsearch &
기본적으로 elasticserch는 포트 9200 및 9300에서 수신 대기합니다. 따라서 다음 URL과 같이 포트 9200에서 NODE_1에 연결합니다. 클러스터에 세 개의 노드가 모두 표시됩니다.
http://NODE_1:9200/_plugin/head/

다중 노드 클러스터 확인

클러스터가 제대로 작동하는지 확인합니다. 한 노드에 일부 데이터를 삽입하고 다른 노드에서 동일한 데이터를 사용할 수 있으면 클러스터가 제대로 작동하고 있음을 의미합니다.

NODE_1에 데이터 삽입

클러스터를 확인하려면 NODE_1에 버킷을 생성하고 일부 데이터를 추가하십시오.
$ curl -XPUT http://NODE_1:9200/mybucket
$ curl -XPUT 'http://NODE_1:9200/mybucket/user/rahul' -d '{ "name" : "Rahul Kumar" }'
$ curl -XPUT 'http://NODE_1:9200/mybucket/post/1' -d '
{
    "user": "rahul",
    "postDate": "01-16-2015",
    "body": "Adding Data in ElasticSearch Cluster" ,
    "title": "ElasticSearch Cluster Test"
}'

모든 노드에서 데이터 검색

이제 NODE_2 및 NODE_3에서 동일한 데이터를 검색하고 동일한 데이터가 클러스터의 다른 노드에 복제되는지 확인합니다. 위의 명령에 따라 rahul이라는 사용자를 만들고 거기에 일부 데이터를 추가했습니다. 따라서 사용자 rahul과 관련된 데이터를 검색하려면 다음 명령을 사용하십시오.
$ curl 'http://NODE_1:9200/mybucket/post/_search?q=user:rahul&pretty=true'
$ curl 'http://NODE_2:9200/mybucket/post/_search?q=user:rahul&pretty=true'
$ curl 'http://NODE_3:9200/mybucket/post/_search?q=user:rahul&pretty=true'
위의 모든 명령에 대해 아래와 같은 결과를 얻을 수 있습니다.
{
  "took" : 69,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "mybucket",
      "_type" : "post",
      "_id" : "1",
      "_score" : 1.0,
      "_source":
{
    "user": "rahul",
    "postDate": "01-16-2015",
    "body": "Adding Data in ElasticSearch Cluster" ,
    "title": "ElasticSearch Cluster Test"
}
    } ]
  }
}

웹 브라우저에서 클러스터 데이터 보기

아래 url의 클러스터 ip 중 하나를 사용하여 Elasticsearch-head 플러그인의 ElasticSearch 클러스터 접근에 대한 데이터를 보려면. 그런 다음 브라우저 탭을 클릭하십시오.
http://NODE_1:9200/_plugin/head/