Site icon Eolya Consulting

Solrcloud Replica failover avec Hadoop HDFS

Dans cet article, je décris et illustre par l’exemple la faculté dont dispose Solr depuis la version 4.10 de démarrer des replicas automatiquement en cas de défaillance d’un noeud du cloud (Solrcloud Replica failover avec Hadoop HDFS). Ceci est possible à condition d’utiliser un système de fichiers distribué pour stocker les données Solr. Le ticket JIRA suivant est à l’origine de cette fonctionnalité « Add autoAddReplicas feature for shared file systems« .

Pour illustrer cette fonctionnalité, je décris sur un serveur unique l’installation de l’ensemble des composants à mettre en place :

Cet article ne se veut pas exhaustif sur les procédures d’installation et de paramètrage de ces 3 composants. J’indique des procédures d’installation rapides. Puis un scénario de failover d’un replica :

L’installation est faite en totalité dans le répertoire « /opt/solr-hadoop »

Installation de Hadoop/HDFS

Il s’agit d’une installation de type « Pseudo-Distribued » dans un cluster à noeud unique. La procédure complete est décrite sur le site Hadoop « Hadoop MapReduce Next Generation – Setting up a Single Node Cluster« .

Les étapes de l’installation :

Installation de Zookeeper (membre unique)

Il s’agit d’un ensemble Zookeeper avec un membre unique pour pouvoir démarrer les noeuds Solr car l’utilisation du Zookeeper interne de Solr n’est pas possible lors de l’utilisation de HDFS pour les données Solr. Une procédure d’installation plus détaillée est disponible ici « Installation d’un ensemble Zookeeper »

Les étapes de l’installation :

Installation de SolrCloud

L’installation permet le démarrage de 3 noeuds. Pour plus d’informations sur SolrCloud (principe, installation, exploitation, …), il est possible de consulter les différents articles déjà écrits sur ce blog. Des liens sont fournis à la suite de cet article.

Les étapes de l’installation :

Tester le failover d’un replica

Maintenant que le cloud Solr est démarré avec 3 noeuds, nous pouvons tenter l’expérience du redémarrage automatique d’un replica lorsqu’un noeud s’arrête.

Les étapes du test sont :

Charger dans Zookeeper la configuration basique fournie avec Solr

solr/server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost localhost:2181 -confdir solr/server/solr/configsets/basic_configs/conf/ -confname basic

Créer une collection

La magie est dans le paramètre « autoAddReplicas=true »

curl "http://localhost:8983/solr/admin/collections?action=CREATE&name=basic&numShards=1&replicationFactor=2&maxShardsPerNode=1&collection.configName=basic&autoAddReplicas=true"

La collection apparait ainsi dans l’administration de Solrcloud

Arrêter un noeud et observer

On arrête le noeud qui fonctionne sur le port 8985

cd /opt/solr-hadoop
solr/bin/solr start -c -z localhost:2181 -p 8985

Le noeud de la collection apparait au statut « Gone »

Puis quelques secondes plus tard, on constate qu’un replica de substitution a été créé sur le noeud Solr disponible (statut « Active » après un statut transitoire à « Recovering »)

Le statut transitoire « Recovering » est assez court et constant quelque soit la volumétrie des données car il n’y a pas synchronisation des données entre 2 noeuds Solr. Le nouveau replica utilise les données existantes hébergées dans le système de fichiers distribué.

Conclusion

A l’heure de l’explosion de la volumétrie des données générée par les systèmes informatiques, 2 problématiques sont à résoudre : le stockage de ces données et les traitements d’analyse toujours plus nombreux qu’il est possible de leur appliquer. Hadoop et son écosystème a pour objectifs de répondre à ces besoins. Le traitement des données est pris en charge par MapReduce alors que le stockage est pris en charge par HDFS sur lequel s’appuie par exemple la base de données NoSQL HBase, mais également Solr. Utiliser HDFS avec Solr permet de transférer la problématique du stockage des index et tout ce qui y est lié (volumétrie, performances, monté en charge failover, sauvegardes, …) à un outil tiers spécialisé. La capacité de conserver la totalité des éléments d’une collection en cas de défaillance d’un noeud du cloud Solr est un réel atout.

Pour plus de détails sur la configuration de Solr avec HDFS, il faut consulter la documentation Solr « Running Solr on HDFS« .

Dans le cadre d’un projet réel que l’on qualifie ou pas de « projet BigData », il est peu probable que Hadoop soit utilisé pour HDFS seul. Les besoins de traitement sur les données imposent l’utilisation d’un environnement Hadoop accompagné d’une partie de son écosystème. Dans ce cas, on s’oriente vers l’utilisation d’une stack Hadoop telle que Cloudera, Hortonworks ou MapR et la lecture des articles « L’embarras du choix – Comment choisir la bonne plate-forme pour Big Data / Hadoop ? » et « La jungle des différentes distributions open source Hadoop » est un bon début pour faire un choix.

Quitter la version mobile