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

네트워크 시나리오
다음 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가 설치되어 있지 않은 경우 다음 링크 중 하나를 사용하여 먼저 설치하십시오. Install Java 8 on CentOS/RHEL 7/6/5java -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)
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/
