Elasticsearch - Indexation et recherches simples

Compréhension de l'architecture

Le but de cet exercice est de vous permettre de manipuler l'architecture d'Elasticsearch, afin d'illustrer le principe de résilience.

Il vous faut pour cela remplir votre base Elasticsearch. Nous allons créer un index boutiques, avec un type restaurant, que nous allons enrichir avec environ 500 restaurants de New-York.

  • Une fois Elasticsearch et Kibana lancé, ouvrez l'interface de Sense.

  • Copiez le contenu du fichier ci dessous

restaurants.txt

Question

Comment s'appelle votre instance d'Elasticsearch ? Est il particulier pour le cluster ?

Indice

Le nom des instances d'Elasticsearch par défaut est choisi au hasard parmi une liste de 300 héros Marvel.

Indice

Votre cluster est composé d'une seule instance d'Elasticsearch pour le moment.

Solution

Le nom de l'instance est écrit en gras, à gauche de l'index boutiques.

Ce instance est le nœud primaire du cluster, puisqu'il n'est composé que de celui-ci. Cette information est marquée par l'étoile à gauche du nom du nœud.

Question

A travers combien de shards votre index est il découpé ? Si l'instance principale est soumis à une panne, est il toujours possible de faire une recherche ?

Indice

On peut voir le nombre de shards en dessous du nom de l'index.

Solution

Par défaut le nombre de shards est 5. Chacun de ces shard est unique, ce qui provoque l'indisponibilité totale du cluster Elasticsearch en cas de panne de sa seule instance.

Nous allons simuler un cluster de noeud en lancant deux autres instances Elasticsearch.

  • Aller dans le répertoire d'Elasticsearch

  • Lancer deux nouvelles instance en lançant deux fois la commande (dans deux nouveaux terminaux)

    Linux :  ./bin/elasticsearch

    Windows :  bin\elasticsearch.bat

  • Actualiser l'interface du plugin Head en rafraîchissant la page.

Question

Comment s'appellent vos nouvelles instances ? Quelle est l'instance principale ?

Solution

Le nom des instances se trouvent à gauche des index

Question

Comment sont réparti les shards de l'index ? Sur quel(s) serveur(s) se trouve(nt) les instances primaires des shards ? Si un des serveurs subit une panne, le cluster est il toujours disponible ?

Indice

Les instances primaires des shards sont identifiées par une bordure grise.

Indice

Vous pouvez faire l'essai en arrêtant un des serveurs, CTRL+C pour envoyer un signal d’arrêt à une instance dans une console.

Solution

Les shards sont maintenant réparti à travers les 3 nœuds, de manière à maximiser la disponibilité en créant automatiquement des répliques. Le cluster est toujours disponible, grâce aux répliques des shards se trouvant sur les autres instances.

Sur l'exemple ci-dessous, le nœud Satana est le nœud principal. Les shards 0 et 2 primaires se trouvent sur le nœud Tabitha Smith, les shards primaires 1, 3 et 4 sur Satana.

Arrêter l'instance principale d'Elasticsearch pour simuler une panne :

  • Ouvrir le terminal ayant lancé l'instance marquée comme principale d'Elasticsearch

  • Envoyer la commande stop par CTRL+C, et confirmer

  • Changez d'adresse pour accéder au plugin Head (car vous avec terminé l'instance), en changeant le port par 9201

Question

Comment Elasticsearch a réorganisé l'architecture des shards pour maintenir la disponibilité du cluster ? Quel est le nœud principal ? Quels sont les shards primaires ?

Solution

Le nœud principal est maintenant Mac Gargan. Les shards primaires sont le 4 sur le nœud principal, et le 0, 1, 2 et 3 sur Tabitha. Des répliques ont été créées pour maintenir la disponibilité en cas de panne d'un des deux serveurs restant.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Robin Jolliet, 2016 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)