>  기사  >  php教程  >  Elasticsearch 단일 머신 2노드 클러스터 배포를 이해하는 방법

Elasticsearch 단일 머신 2노드 클러스터 배포를 이해하는 방법

坏嘻嘻
坏嘻嘻원래의
2018-09-14 16:03:4212308검색

이 글에서는 Elasticsearch에서 CRUD를 수행하는 방법에 대한 몇 가지 기본 학습을 진행합니다.

Elasticsearch 독립형 이중 노드 클러스터 배포

环境:CentOS 7.2       JDK 1.8.0_74


1. 첫 번째 ElasticSearch(마스터 노드)를 설치합니다.

1. es 사용자를 생성하고 es를 시작할 수 없습니다.

루트 사용자는 /home /es 디렉토리에 진입합니다.

2. ElasticSearch 설치 패키지를 얻습니다.

useradd es
passwd es

3. 압축을 풀고 이름을 바꿉니다(클러스터링 시 다른 ES를 쉽게 구별할 수 있도록)

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.2.tar.gz

4. 수정 내용은 다음과 같습니다:

tar xf elasticsearch-6.1.2.tar.gzmv elasticsearch-6.1.2.tar.gz elasticsearch-node2

파일은 마지막에 추가됩니다. 다음 내용은 헤드를 연결하여 건강 값을 표시하는 데 사용됩니다. (각 코드 줄 앞에 공백이 없습니다.)

vi elasticsearch-node2/config/elasticsearch.yml

5.

cluster.name: my-application      
  各节点此名称必须一致node.name: node-2           
        节点名称,不能与其他节点相同        
         network.host: ***.***.***.***   
        自己的服务器IPhttp.port: ****         
           访问端口transport.tcp.port: ****  
    集群各节点间的通讯端口 discovery.zen.ping.unicast.hosts: ["主节点IP:通讯端口","辅节点IP:通讯端口"]
http.cors.enabled: truehttp.cors.allow-origin: "*"

시작에 성공했습니다. 브라우저에

IP: 액세스 포트를 입력하세요.

웹 페이지에는 배포 성공

sh elasticsearch-node2/bin/elasticsearch

6 오류 보고서 및 처리 방법을 설명하는 다음 내용이 표시됩니다.

【유형 1】

[2018-01-24T15:36:41,990][INFO ][o.e.n.Node               ] [KMyyO-3] started
[2018-01-24T15:36:41,997][INFO ][o.e.g.GatewayService     ] [KMyyO-3] recovered [0] indices into cluster_state

이 문제입니다. 루트 사용자는 es를 실행할 수 없기 때문에 다시 시작하려면 es 사용자를 전환해야 합니다

{
  "name" : "node-2",
  "cluster_name" : "my-application",
  "cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",    
  "version" : {
    "number" : "6.1.2",
    "build_hash" : "5b1fea5",
    "build_date" : "2018-01-10T02:35:59.208Z",
    "build_snapshot" : false,
    "lucene_version" : "7.1.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"}

【Type 2】

Caused by: java.lang.RuntimeException: can not run elasticsearch as root

해결 방법 루트 사용자로 돌아가서 구성 파일을 수정하세요

chown -R es:es elasticsearch-node2/su - es
sh elasticsearch-node2/bin/elasticsearch

[ 유형 3]

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

해결 방법: 루트 사용자로 다시 변경하고 구성 파일을 수정

vi /etc/security/limits.conf#在最后面追加下面内容es hard nofile 65536es soft nofile 65536

둘째, 두 번째 ElasticSearch(보조 노드)를 설치합니다

설치 방법은 첫 번째와 동일합니다. 주의하세요. 구성 파일을 수정합니다. root 사용자는 /home/es 디렉터리를 입력합니다.
1. 압축을 풀고 이름을 변경합니다.

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

2. 구성 파일을 수정합니다.

vi /etc/sysctl.conf 
#在最后面追加下面内容vm.max_map_count=655360#执行命令:sysctl -p

수정 내용은 다음과 같습니다.

tar xf elasticsearch-6.1.2.tar.gzmv elasticsearch-6.1.2.tar.gz elasticsearch-node3

다음 코드를 추가합니다.

vi elasticsearch-node3/config/elasticsearch.yml

3.

cluster.name: my-application      
  各节点此名称必须一致node.name: node-3      
               节点名称,不能与其他节点相同network.host: ***.***.***.***   
                   自己的服务器IPhttp.port: ****          
                              访问端口(注意不要与第一个端口重复)                              transport.tcp.port: ****            集群各节点间的通讯端口(注意不要与第一个端口重复)discovery.zen.ping.unicast.hosts: ["主节点IP:通讯端口","辅节点IP:通讯端口"]

브라우저를 시작하고

IP: 액세스 포트

를 입력합니다.

웹페이지에 두 번째 배포가 성공했음을 나타내는 다음 콘텐츠가 표시됩니다.

http.cors.enabled: truehttp.cors.allow-origin: "*"

3. Elasticsearch-head 플러그를 설치합니다. in

1. 헤드 플러그인 설치

sh elasticsearch-node3/bin/elasticsearch
전에 node.js를 설치해야 합니다. 설치가 완료된 후 명령을 실행하여 node 및 npm 버전을 확인하세요
{
  "name" : "node-3",
  "cluster_name" : "my-application",
  "cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",
  "version" : {
    "number" : "6.1.2",
    "build_hash" : "5b1fea5",
    "build_date" : "2018-01-10T02:35:59.208Z",
    "build_snapshot" : false,
    "lucene_version" : "7.1.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"}

2. git

curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install -y nodejs

3. 설치 패키지 압축을 푼다(쉬운 작업을 위해 이름을 바꿀 수 있음)

[root@host]# node -vv8.12.0[root@host]# npm -v6.4.1

4. 구성 파일 수정

wget https://github.com/mobz/elasticsearch-head/archive/master.zip

헤드 포트 번호 변경

unzip master.zip
mv elasticsearch-head-master/ head
vi head/Gruntfile.js

헤드 링크 주소 변경

connect: {          server: {
                   options: {
                              port: ****,    改为head访问端口
                              base: '.',
                              keepalive: true                             }
                    }
          }

5.

6. 브라우저를 통해 헤드에 로그인

URL 서버 IP 입력: 헤드 액세스 포트
링크 주소를 기본으로 입력 노드의 액세스 주소 Elasticsearch 단일 머신 2노드 클러스터 배포를 이해하는 방법7. 헤드 설치 시 자주 발생하는 오류

[유형 1] 시작이 성공했습니다. , 그러나 웹 페이지에 접속할 수 없습니다

해결책
서버 방화벽을 끄십시오

vi head/_site/app.js

[유형 2] 클러스터 상태 값이 연결되지 않았습니다
elasticsearch.yml 코드에 다음을 추가하십시오. 코드)
init: function(parent) {
                        this._super();                        this.prefs = services.Preferences.instance();                        this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://主节点IP:访问端口";

Q: es 노드는 왜 node2와 node3를 사용하나요?

답변: 이전에 클러스터되지 않은 ES 세트를 구축하기 위해 node1을 사용했기 때문에 후속 클러스터에 2와 3을 사용했습니다.

관련 권장 사항:


Yii2-elasticsearch 어떻게 사용하나요?

Elasticsearch의 CRUD

위 내용은 Elasticsearch 단일 머신 2노드 클러스터 배포를 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.