Impala - Architecture

Impala est un moteur d'exécution de requêtes MPP (Massive Parallel Processing) qui s'exécute sur un certain nombre de systèmes dans le cluster Hadoop. Contrairement aux systèmes de stockage traditionnels, impala est découplé de son moteur de stockage. Il a trois composants principaux à savoir, Impala daemon (Impalad) , Impala Statestore et métadonnées ou métastore Impala.

Démon Impala ( Impalad )

Démon Impala (également connu sous le nom de impalad) s'exécute sur chaque nœud sur lequel Impala est installé. Il accepte les requêtes provenant de différentes interfaces comme impala shell, navigateur hue, etc.… et les traite.

Chaque fois qu'une requête est soumise à un impalade sur un nœud particulier, ce nœud sert de "coordinator node”Pour cette requête. Plusieurs requêtes sont également servies par Impalad s'exécutant sur d'autres nœuds. Après avoir accepté la requête, Impalad lit et écrit dans des fichiers de données et met en parallèle les requêtes en distribuant le travail aux autres nœuds Impala du cluster Impala. Lorsque des requêtes sont traitées sur différentes instances d'Impalad , toutes renvoient le résultat au nœud central de coordination.

Selon les besoins, les requêtes peuvent être soumises à un Impalad dédié ou de manière équilibrée en charge à un autre Impalad de votre cluster.

Magasin d'État Impala

Impala a un autre composant important appelé Impala State store, qui est chargé de vérifier la santé de chaque Impalad , puis de relayer fréquemment la santé de chaque démon Impala aux autres démons. Cela peut s'exécuter sur le même nœud que celui sur lequel le serveur Impala ou un autre nœud du cluster est en cours d'exécution.

Le nom du processus démon de stockage d'état Impala est Stocké d' état . Impalad signale son état d' intégrité au démon de stockage Impala State, c'est-à-dire l' état stocké .

En cas de défaillance d'un nœud pour une raison quelconque, Statestore met à jour tous les autres nœuds à propos de cette défaillance et une fois qu'une telle notification est disponible pour l'autre impalad , aucun autre démon Impala n'assigne d'autres requêtes au nœud affecté.

Metadata & Meta Store Impala

Les métadonnées et le magasin de méta d'Impala sont un autre composant important. Impala utilise des bases de données MySQL ou PostgreSQL traditionnelles pour stocker les définitions de table. Les détails importants tels que les informations de table et de colonne et les définitions de table sont stockés dans une base de données centralisée connue sous le nom de méta-magasin.

Chaque nœud Impala met en cache toutes les métadonnées localement. Lorsqu'il s'agit d'une très grande quantité de données et / ou de nombreuses partitions, l'obtention de métadonnées spécifiques à une table peut prendre un temps considérable. Ainsi, un cache de métadonnées stocké localement aide à fournir ces informations instantanément.

Lorsqu'une définition de table ou des données de table sont mises à jour, les autres démons Impala doivent mettre à jour leur cache de métadonnées en récupérant les dernières métadonnées avant d'émettre une nouvelle requête sur la table en question.

Interfaces de traitement des requêtes

Pour traiter les requêtes, Impala fournit trois interfaces comme indiqué ci-dessous.

  • Impala-shell - Après avoir configuré Impala à l'aide de la VM Cloudera, vous pouvez démarrer le shell Impala en tapant la commande impala-shelldans l'éditeur. Nous en discuterons plus sur le shell Impala dans les prochains chapitres.

  • Hue interface- Vous pouvez traiter les requêtes Impala à l'aide du navigateur Hue. Dans le navigateur Hue, vous avez l'éditeur de requêtes Impala où vous pouvez taper et exécuter les requêtes impala. Pour accéder à cet éditeur, vous devez tout d'abord vous connecter au navigateur Hue.

  • ODBC/JDBC drivers- Tout comme les autres bases de données, Impala fournit des pilotes ODBC / JDBC. En utilisant ces pilotes, vous pouvez vous connecter à impala via des langages de programmation qui prennent en charge ces pilotes et créer des applications qui traitent des requêtes dans impala à l'aide de ces langages de programmation.

Procédure d'exécution des requêtes

Chaque fois que les utilisateurs passent une requête en utilisant l'une des interfaces fournies, cela est accepté par l'un des Impalads du cluster. Cet Impalad est traité comme un coordinateur pour cette requête particulière.

Après avoir reçu la requête, le coordinateur de requêtes vérifie si la requête est appropriée, en utilisant le Table Schemadu méta-boutique Hive. Plus tard, il recueille les informations sur l'emplacement des données nécessaires pour exécuter la requête, à partir du nœud de nom HDFS et envoie ces informations à d'autres impalades afin d'exécuter la requête.

Tous les autres démons Impala lisent le bloc de données spécifié et traitent la requête. Dès que tous les démons ont terminé leurs tâches, le coordinateur de requêtes récupère le résultat et le remet à l'utilisateur.