Maison  >  Article  >  php教程  >  Comment comprendre le déploiement de cluster à deux nœuds sur une seule machine Elasticsearch

Comment comprendre le déploiement de cluster à deux nœuds sur une seule machine Elasticsearch

坏嘻嘻
坏嘻嘻original
2018-09-14 16:03:4212309parcourir

Dans cet article, nous ferons quelques apprentissages de base sur la façon d'exécuter CRUD dans Elasticsearch.

Déploiement de cluster autonome à deux nœuds Elasticsearch

环境:CentOS 7.2       JDK 1.8.0_74


1. Installez le premier ElasticSearch (nœud maître) <.>

1. Créez un utilisateur es. L'utilisateur root ne peut pas être utilisé pour démarrer es

useradd es
passwd es
L'utilisateur root entre dans le répertoire /home/es

2. . Obtenez le package d'installation d'ElasticSearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.2.tar.gz
3. Décompressez et renommez (pour faciliter la différenciation d'un autre ES lors du clustering)

tar xf elasticsearch-6.1.2.tar.gzmv elasticsearch-6.1.2.tar.gz elasticsearch-node2
4. 🎜>

Le contenu de la modification est le suivant :

vi elasticsearch-node2/config/elasticsearch.yml

Ajoutez le contenu suivant à la fin du fichier pour connecter la tête afin d'afficher la valeur de santé (notez qu'il ne doit pas y avoir d'espaces avant chaque ligne de code)

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

5. Démarrer

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

Démarrez avec succès, saisissez
sh elasticsearch-node2/bin/elasticsearch
IP : port d'accès dans le navigateur
[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

La page Web affiche le contenu suivant, indiquant que le déploiement est réussi

6. Rapport d'erreurs et sa gestion

【Type 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"}


Ce problème est dû au fait que vous ne pouvez pas utiliser l'utilisateur root pour exécuter es, vous devez donc passer à l'utilisateur es et recommencer

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

【Type 2】

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

Solution, revenez à la racine utilisateur, modifier le fichier de configuration

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

[Type 3]

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

Solution, revenir à l'utilisateur root, modifier le fichier de configuration

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

2. Installez le deuxième ElasticSearch (nœud secondaire)
vi /etc/sysctl.conf 
#在最后面追加下面内容vm.max_map_count=655360#执行命令:sysctl -p

La méthode d'installation est la même que la première, faites attention à modifier le fichier de configuration L'utilisateur root entre dans le répertoire /home/es
1. Décompressez et renommez

2. Modifiez le fichier de configuration

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

Le contenu modifié est le suivant :

vi elasticsearch-node3/config/elasticsearch.yml

fichier Enfin, ajoutez le code suivant

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

3. Démarrez le navigateur

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

et entrez

IP : port d'accès
sh elasticsearch-node3/bin/elasticsearch

La page Web affiche le contenu suivant, indiquant que le deuxième déploiement est réussi

3. Installez le plug-in Elasticsearch-head
{
  "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"}

1. pour installer node.js
Une fois l'installation terminée, exécutez la commande pour afficher les versions node et npm

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

2. Obtenez le plug-in head depuis git

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

3. Décompressez le package d'installation (vous pouvez le renommer pour une utilisation facile)

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

4. Modifiez le fichier de configuration

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

Changez la tête. numéro de port

vi head/Gruntfile.js

Modifiez l'adresse du lien principal
connect: {          server: {
                   options: {
                              port: ****,    改为head访问端口
                              base: &#39;.&#39;,
                              keepalive: true                             }
                    }
          }
vi head/_site/app.js

5. Démarrer la tête

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:访问端口";

6.

nohup npm run start > ../head.log 2>&1 &


IP du serveur d'entrée URL : port d'accès de la tête Comment comprendre le déploiement de cluster à deux nœuds sur une seule machine ElasticsearchEntrez l'adresse du lien comme adresse d'accès du nœud maître

7. Erreurs courantes lors de l'installation de la tête

[Type 1] Démarrage réussi, mais la page Web n'est pas accessible
Solution
Désactivez le pare-feu du serveur


[Type 2] Cluster La valeur de santé n'est pas connectée

Ajoutez le code suivant à elasticsearch.yml (notez qu'il ne doit pas y avoir d'espaces devant le code)
service iptables stop


Q : Pourquoi node2 et node3 sont-ils utilisés pour les nœuds es ?

Réponse : Parce que j'ai utilisé node1 pour créer un ES non clusterisé auparavant, j'ai utilisé 2 et 3 pour les clusters suivants
http.cors.enabled: truehttp.cors.allow-origin: "*"

Recommandations associées :

Comment utiliser Yii2-elasticsearch ah ?

CRUD dans Elasticsearch

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn