Heim  >  Artikel  >  php教程  >  So verstehen Sie die Elasticsearch-Clusterbereitstellung auf einer Maschine und mit zwei Knoten

So verstehen Sie die Elasticsearch-Clusterbereitstellung auf einer Maschine und mit zwei Knoten

坏嘻嘻
坏嘻嘻Original
2018-09-14 16:03:4212295Durchsuche

In diesem Artikel werden wir einige grundlegende Informationen zur Durchführung von CRUD in Elasticsearch erlernen.

Bereitstellung eines eigenständigen Dual-Node-Clusters von Elasticsearch

环境:CentOS 7.2       JDK 1.8.0_74


1. Installieren Sie den ersten ElasticSearch (Masterknoten)

1. Sie können den Root-Benutzer nicht zum Starten von es verwenden.

useradd es
passwd es

Der Root-Benutzer betritt das Verzeichnis /home/es

2 Installationspaket

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

3. Entpacken und umbenennen (um die Unterscheidung eines anderen ES beim Clustering zu erleichtern)

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

Der Änderungsinhalt ist wie folgt:

vi elasticsearch-node2/config/elasticsearch.yml

Fügen Sie den folgenden Inhalt am Ende der Datei hinzu, damit der Verbindungskopf den Gesundheitswert anzeigt (beachten Sie, dass vor jeder Codezeile keine Leerzeichen stehen dürfen)

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

5. Start

http.cors.enabled: truehttp.cors.allow-origin: "*"
sh elasticsearch-node2/bin/elasticsearch

Erfolgreich gestartet, geben Sie

IP: Zugriffsport

Die Webseite zeigt den folgenden Inhalt an, was darauf hinweist, dass die Bereitstellung erfolgreich war

[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

6. Fehlerberichterstattung und deren Behandlung

[Typ 1]

{
  "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"}

Dieses Problem liegt daran, dass die Ausführung von es nicht als Root-Benutzer verwendet werden kann. Sie müssen also zum Benutzer „es“ wechseln und erneut starten

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

[Typ 2]

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

Die Lösung besteht darin, zurück zum Root-Benutzer zu wechseln und die Konfigurationsdatei zu ändern

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

[Typ 3]

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

Lösung, Wechseln Sie zurück zum Root-Benutzer und ändern Sie die Konfigurationsdatei

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

2. Installieren Sie den zweiten ElasticSearch (Sekundärknoten)

Die Installationsmethode ist die gleiche wie bei der ersten, zahlen Sie Achtung, um die Konfigurationsdatei zu ändern Root-Benutzer betritt das Verzeichnis /home/es
1. Entpacken und umbenennen

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

Ändern Der Inhalt ist wie folgt: Die Datei

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

hängt am Ende außerdem den folgenden Code an:

vi elasticsearch-node3/config/elasticsearch.yml

3. Starten Sie den Browser

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

und geben Sie

IP: access ein Port

Die Webseite zeigt den folgenden Inhalt an, der darauf hinweist, dass die zweite Bereitstellung erfolgreich war

3. Installieren Sie das Elasticsearch-Head-Plug-in 1 Sie müssen node.js vor der Installation des Head-Plug-Ins installieren

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

Führen Sie nach Abschluss der Installation den Befehl aus, um die Node- und NPM-Versionen anzuzeigen

sh elasticsearch-node3/bin/elasticsearch
2. Holen Sie sich das Head-Plug-in. von git
{
  "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"}

3. Entpacken Sie das Installationspaket (Sie können es zur einfacheren Bedienung umbenennen)

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

4. Ändern Sie die Konfigurationsdatei

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

Ändern Sie die Hauptportnummer

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

Ändern Sie die Head-Link-Adresse

unzip master.zip
mv elasticsearch-head-master/ head

5. Starten Sie head

vi head/Gruntfile.js

6. Melden Sie sich bei head mit einem Browser an

URL-Eingabeserver-IP: Head-Zugriffsport

Geben Sie die Linkadresse als Zugriffsadresse des Masterknotens ein

7. Häufige Fehler bei der Installation von Head
[Typ 1] Erfolgreich gestartet, aber die Webseite kann nicht gestartet werden Zugriff So verstehen Sie die Elasticsearch-Clusterbereitstellung auf einer Maschine und mit zwei KnotenLösung

Schließen Sie die Server-Firewall

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

[Typ 2] Der Cluster-Gesundheitswert ist nicht verbunden
Fügen Sie den folgenden Code zu elasticsearch.yml hinzu ( Beachten Sie, dass darin keine Leerzeichen enthalten sein dürfen vor dem Code)
vi head/_site/app.js

Frage: Warum verwenden ES-Knoten Knoten2 und Knoten3?
Antwort: Da ich zuvor Knoten1 zum Erstellen eines nicht geclusterten ES verwendet habe, habe ich 2 und 3 für die nachfolgenden Cluster verwendet.

Verwandte Empfehlungen:

So verwenden Sie Yii2-elasticsearch ah ?

CRUD in Elasticsearch

Das obige ist der detaillierte Inhalt vonSo verstehen Sie die Elasticsearch-Clusterbereitstellung auf einer Maschine und mit zwei Knoten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn