Tutoriel de test Big Data : qu'est-ce que c'est, stratégie, comment tester Hadoop

Tests de mégadonnées

Tests de mégadonnées est un processus de test d'une application Big Data afin de garantir que toutes les fonctionnalités d'une application Big Data fonctionnent comme prévu. L'objectif des tests Big Data est de garantir que le système Big Data fonctionne correctement et sans erreur tout en maintenant les performances et la sécurité.

Le Big Data est une collection de grands ensembles de données qui ne peuvent pas être traités à l’aide des techniques informatiques traditionnelles. Essais de ces ensembles de données implique divers outils, techniques et cadres à traiter. Le Big Data concerne la création, le stockage, la récupération et l’analyse de données remarquables en termes de volume, de variété et de rapidité. Vous pouvez en savoir plus sur le Big Data, Hadoop et MapReduce ici

Qu’est-ce que la stratégie de test Big Data ?

Tester une application Big Data consiste davantage à vérifier son traitement des données qu’à tester les fonctionnalités individuelles du produit logiciel. Lorsqu'il s'agit de tests Big Data, tests de performances et fonctionnels sont les clés.

Dans la stratégie de test Big Data, les ingénieurs QA vérifient le traitement réussi de téraoctets de données à l'aide d'un cluster de produits et d'autres composants de support. Cela nécessite un haut niveau de compétences en matière de tests car le traitement est très rapide. Le traitement peut être de trois types

Stratégie de test Big Data

Parallèlement à cela, la qualité des données est également un facteur important dans les tests Hadoop. Avant de tester l'application, il est nécessaire de vérifier la qualité des données et doit être considéré comme faisant partie des tests de la base de données. Il s'agit de vérifier diverses caractéristiques telles que la conformité, l'exactitude, la duplication, la cohérence, la validité, l'exhaustivité des données, etc. Ensuite, dans ce didacticiel Hadoop Testing, nous apprendrons comment tester les applications Hadoop.

Comment tester les applications Hadoop

Le following la figure donne un aperçu de haut niveau des phases de test des applications Big Data

Tester les applications Hadoop

Les tests Big Data ou Hadoop peuvent être divisés en trois étapes

Étape 1 : Validation de la mise en scène des données

La première étape de ce didacticiel de test Big Data est appelée étape pré-Hadoop et implique la validation du processus.

  • Données provenant de diverses sources comme RDBMS, les blogs, les médias sociaux, etc. doivent être validés pour garantir que les données correctes sont saisies dans le système
  • Comparer les données sources avec les données transmises au système Hadoop pour s'assurer qu'elles correspondent
  • Vérifiez que les bonnes données sont extraites et chargées dans le bon emplacement HDFS

Des outils comme Talend, Datameer, peut être utilisé pour la validation de la mise en scène des données

Étape 2 : Validation « MapReduce »

La deuxième étape est une validation de « MapReduce ». Au cours de cette étape, le testeur Big Data vérifie la validation de la logique métier sur chaque nœud, puis les valide après exécution sur plusieurs nœuds, garantissant ainsi que le

  • Le processus de réduction de carte fonctionne correctement
  • Des règles d'agrégation ou de ségrégation des données sont mises en œuvre sur les données
  • Des paires clé-valeur sont générées
  • Validation des données après le processus Map-Reduce

Étape 3 : Phase de validation des résultats

La dernière ou troisième étape des tests Hadoop est le processus de validation des résultats. Les fichiers de données de sortie sont générés et prêts à être déplacés vers un EDW (Enterprise Data Warehouse) ou tout autre système en fonction des besoins.

Les activités de la troisième étape comprennent

  • Pour vérifier que les règles de transformation sont correctement appliquées
  • Pour vérifier l'intégrité des données et le chargement réussi des données dans le système cible
  • Pour vérifier qu'il n'y a pas de corruption des données en comparant les données cibles avec les données du système de fichiers HDFS

ArchiTest de texture

Hadoop traite de très gros volumes de données et est très gourmand en ressources. Ainsi, archiles tests architecturaux sont cruciaux pour garantir le succès de votre projet Big Data. Un système mal ou mal conçu peut entraîner une dégradation des performances et le système pourrait ne pas répondre aux exigences. Au moins, Test de performances et de basculement les services doivent être effectués dans un environnement Hadoop.

Test de performance comprend des tests sur le temps d'exécution des tâches, l'utilisation de la mémoire, le débit de données et des mesures système similaires. Alors que l'objectif du service de test de basculement est de vérifier que le traitement des données s'effectue de manière transparente en cas de panne des nœuds de données.

Test de performance

Les tests de performances pour le Big Data comprennent deux actions principales

  • Ingestion de données et tout au long: Dans cette étape, le testeur Big Data vérifie comment le système rapide peut consommer des données provenant de diverses sources de données. Les tests consistent à identifier un message différent que la file d'attente peut traiter dans un laps de temps donné. Cela inclut également la rapidité avec laquelle les données peuvent être insérées dans le magasin de données sous-jacent, par exemple le taux d'insertion dans un Mongo et Base de données Cassandre.
  • Traitement de l'information: Il s'agit de vérifier la vitesse à laquelle les requêtes ou les tâches de réduction de carte sont exécutées. Cela comprend également le test du traitement des données de manière isolée lorsque le magasin de données sous-jacent est renseigné dans les ensembles de données. Par exemple, l'exécution de tâches Map Reduction sur le sous-jacent HDFS
  • Performance des sous-composants: Ces systèmes sont constitués de plusieurs composants, et il est essentiel de tester chacun de ces composants isolément. Par exemple, la rapidité avec laquelle le message est indexé et consommé, les tâches MapReduce, les performances des requêtes, la recherche, etc.
  • Approche des tests de performances

    Les tests de performances pour les applications Big Data impliquent de tester d’énormes volumes de données structurées et non structurées, et nécessitent une approche de test spécifique pour tester des données aussi volumineuses.

    Approche des tests de performances

    Les tests de performances sont exécutés dans cet ordre

    1. Le processus commence par la configuration du cluster Big Data dont les performances doivent être testées.
    2. Identifier et concevoir les charges de travail correspondantes
    3. Préparer les clients individuels (des scripts personnalisés sont créés)
    4. Exécuter le test et analyser le résultat (si les objectifs ne sont pas atteints, régler le composant et réexécuter)
    5. Configuration optimale

    Paramètres pour les tests de performances

    Divers paramètres à vérifier pour les tests de performances sont

    • Stockage des données : comment les données sont stockées dans différents nœuds
    • Journaux de validation : la taille du journal de validation peut croître
    • Concurrence : combien de threads peuvent effectuer des opérations d'écriture et de lecture
    • Mise en cache : ajustez les paramètres de cache « cache de lignes » et « cache de clés ».
    • Délais d'expiration : valeurs de délai d'expiration de connexion, de délai d'expiration de requête, etc.
    • Paramètres JVM : taille du tas, algorithmes de collecte GC, etc.
    • La carte réduit les performances : trie, fusionne, etc.
    • File d'attente des messages : débit des messages, taille, etc.

    Besoins de l’environnement de test

    L'environnement de test doit dépendre du type d'application que vous testez. Pour les tests de logiciels Big Data, l'environnement de test doit englober

    • Il doit disposer de suffisamment d’espace pour le stockage et traiter une grande quantité de données
    • Il devrait avoir un cluster avec des nœuds et des données distribués
    • Il doit avoir une utilisation minimale du processeur et de la mémoire pour maintenir des performances élevées afin de tester les performances du Big Data.

    Tests Big Data vs. Tests de bases de données traditionnelles

    propriétés Tests de bases de données traditionnels Tests de mégadonnées
    Données Le testeur travaille avec des données structurées Le testeur fonctionne avec des données structurées et non structurées
    Approche de test L'approche de test est bien définie et éprouvée L'approche de test nécessite des efforts de R&D ciblés
    Stratégie de test Le testeur a la possibilité d'effectuer une stratégie « d'échantillonnage » manuellement ou une stratégie de « vérification exhaustive » par l'outil d'automatisation. La stratégie de « sampling » dans le Big data est un défi
    Infrastructure Il ne nécessite pas d'environnement de test spécial car la taille du fichier est limitée Il nécessite un environnement de test spécial en raison de la grande taille des données et des fichiers (HDFS)
    Outils de validation Le testeur utilise soit le logiciel basé sur Excel macros ou outils d'automatisation basés sur l'interface utilisateur Aucun outil défini, la gamme est vaste, des outils de programmation comme MapReduce à HIVEQL
    Outils de test Les outils de test peuvent être utilisés avec des connaissances opérationnelles de base et moins de formation. Cela nécessite un ensemble spécifique de compétences et de formation pour utiliser un outil de test. De plus, les outils en sont à leurs balbutiements et, au fil du temps, ils pourraient proposer de nouvelles fonctionnalités.

    Outils utilisés dans les scénarios Big Data

    Grappe de mégadonnées Outils de mégadonnées
    NoSQL : CouchDB, bases de données MongoDB, Cassandra, Redis, ZooKeeper, HBase
    MapReduce : Hadoop, Ruche, Cochon, Cascade, Oozie, Kafka, S4, MapR, Flume
    Stockage: S3, HDFS (système de fichiers distribués Hadoop)
    Les serveurs: Élastique, Heroku, Élastique, Google App Engine, EC2
    En cours R, Yahoo! Tuyaux, Mechanical Turk, BigSheets, Datameer

    Défis des tests Big Data

    • Automation

      Test d'automatisation Le Big Data nécessite une personne possédant une expertise technique. De plus, les outils automatisés ne sont pas équipés pour gérer les problèmes inattendus qui surviennent lors des tests.

    • Virtualisation

      C'est l'une des phases intégrales des tests. La latence des machines virtuelles crée des problèmes de timing lors des tests de performances Big Data en temps réel. La gestion des images dans le Big Data est également un problème.

    • Grand ensemble de données
      • Besoin de vérifier plus de données et de le faire plus rapidement
      • Besoin d'automatiser l'effort de test
      • Besoin de pouvoir tester sur différentes plateformes

    Défis des tests de performances

    • Un ensemble diversifié de technologies: Chaque sous-composant appartient à une technologie différente et nécessite des tests isolés
    • Indisponibilité d'outils spécifiques: Aucun outil ne peut effectuer à lui seul les tests de bout en bout. Par exemple, NoSQL pourrait ne pas convenir aux files d'attente de messages
    • Tester les scripts: Un haut degré de scripting est nécessaire pour concevoir des scénarios de test et des cas de test
    • Environnement de test: Il nécessite un environnement de test spécial en raison de la grande taille des données
    • Solution de surveillance : Il existe des solutions limitées permettant de surveiller l'ensemble de l'environnement
    • Solution diagnostique : une solution personnalisée est nécessaire à développer pour explorer les zones de goulot d'étranglement en matière de performances

    Résumé

    • À mesure que l’ingénierie et l’analyse des données progressent vers un niveau supérieur, les tests Big Data sont inévitables.
    • Le traitement du Big Data peut être par lots, en temps réel ou interactif.
    • 3 étapes de test des applications Big Data sont la validation de la mise en scène des données, la validation « MapReduce » et la phase de validation des sorties
    • ArchiLes tests de configuration constituent la phase importante des tests Big Data, car un système mal conçu peut entraîner des erreurs sans précédent et une dégradation des performances.
    • Les tests de performances pour le Big Data incluent la vérification du débit de données, du traitement des données et des performances des sous-composants.
    • Les tests Big Data sont très différents des tests de données traditionnels en termes de données, d'infrastructure et d'outils de validation.
    • Les défis des tests Big Data incluent la virtualisation, l’automatisation des tests et la gestion de grands ensembles de données. Les tests de performances des applications Big Data constituent également un problème.