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

Table des matières:

Anonim

Test de Big Data

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

Le Big Data est un ensemble de grands ensembles de données qui ne peuvent pas être traités à l'aide des techniques informatiques traditionnelles. Le test de ces ensembles de données implique divers outils, techniques et cadres à traiter. Les mégadonnées concernent 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 vitesse. Vous pouvez en savoir plus sur le Big Data, Hadoop et MapReduce ici

Dans ce tutoriel sur les tests de Big Data, vous apprendrez-

  • Qu'est-ce que la stratégie de test Big Data?
  • Comment tester les applications Hadoop
  • Test d'architecture
  • Test de performance
  • Approche de test de performance
  • Paramètres pour les tests de performance
  • Besoins en environnement de test
  • Test de données volumineuses Vs. Test de base de données traditionnel
  • Outils utilisés dans les scénarios Big Data
  • Défis des tests Big Data

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

Tester une application Big Data est plus une vérification de son traitement de données que de tester les fonctionnalités individuelles du produit logiciel. En ce qui concerne les tests Big Data, les performances et les tests fonctionnels sont les clés.

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

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 du test de la base de données. Cela implique de vérifier diverses caractéristiques telles que la conformité, la précision, la duplication, la cohérence, la validité, l'exhaustivité des données, etc. Ensuite, dans ce didacticiel Hadoop Testing, nous allons apprendre à tester les applications Hadoop.

Comment tester les applications Hadoop

La figure suivante donne un aperçu de haut niveau des phases de test des applications Big Data

Les tests Big Data ou Hadoop peuvent être globalement 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 de Big Data est appelée étape pré-Hadoop impliquant la validation de processus.

  • Les données provenant de diverses sources telles que le SGBDR, les blogs, les médias sociaux, etc. doivent être validées pour s'assurer que les données correctes sont extraites dans le système
  • Comparaison des données source avec les données introduites dans le 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 tels que Talend , Datameer, peuvent être utilisés pour la validation du data staging

Étape 2: Validation "MapReduce"

La deuxième étape est une validation de "MapReduce". Dans 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, en s'assurant que le

  • Le processus de réduction de la carte fonctionne correctement
  • Des règles d'agrégation ou de séparation des données sont implémentées sur les données
  • Des paires de valeurs clés sont générées
  • Validation des données après le processus Map-Reduce

Étape 3: Phase de validation de la sortie

La dernière ou troisième étape des tests Hadoop est le processus de validation de sortie. 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 de données en comparant les données cibles avec les données du système de fichiers HDFS

Test d'architecture

Hadoop traite de très gros volumes de données et consomme beaucoup de ressources. Par conséquent, les tests architecturaux sont essentiels pour assurer le succès de votre projet Big Data. Un système mal conçu ou mal conçu peut entraîner une dégradation des performances et le système peut ne pas répondre aux exigences. Au moins, les services de test de performances et de basculement doivent être effectués dans un environnement Hadoop.

Les tests de performances comprennent le test du temps d'achèvement des travaux, de l'utilisation de la mémoire, du débit de données et de mesures système similaires. Alors que le motif du service de test de basculement est de vérifier que le traitement des données se déroule de manière transparente en cas de défaillance des nœuds de données

Test de performance

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

  • Ingestion de données et tout au long de cette étape: à 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. Le test implique l'identification d'un message différent que la file d'attente peut traiter dans un laps de temps donné. Il 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 une base de données Mongo et Cassandra.
  • Traitement des données : 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 rempli dans les ensembles de données. Par exemple, exécuter des tâches de réduction de carte sur le HDFS sous-jacent
  • Performance des sous-composants : ces systèmes sont constitués de plusieurs composants, et il est essentiel de tester chacun de ces composants de manière isolée. 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 de test de performance

Les tests de performance 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 ces données massives.

Les tests de performance 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 des clients individuels (des scripts personnalisés sont créés)
  4. Exécutez le test et analysez le résultat (si les objectifs ne sont pas atteints, réglez le composant et réexécutez)
  5. Configuration optimale

Paramètres pour les tests de performance

Différents paramètres à vérifier pour les tests de performance 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 est autorisée à augmenter
  • Concurrence: combien de threads peuvent effectuer des opérations d'écriture et de lecture
  • Mise en cache: réglez les paramètres de cache "row cache" et "key cache".
  • Timeouts: valeurs pour le délai de connexion, le délai 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, taille des messages, etc.

Besoins en 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 doit 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 et tester les performances du Big Data

Test de données volumineuses Vs. Test de base de données traditionnel

Propriétés

Test de base de données traditionnel

Test de Big Data

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 testée dans le temps
  • L'approche de test nécessite des efforts de R&D ciblés

Stratégie de test

  • Le testeur a la possibilité de faire de la stratégie «d'échantillonnage» manuellement ou de la stratégie de «vérification exhaustive» par l'outil d'automatisation
  • La stratégie «d'échantillonnage» 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 les macros basées sur Excel, soit les 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 de fonctionnement de base et moins de formation.

Il faut un ensemble spécifique de compétences et de formation pour faire fonctionner un outil de test. En outre, les outils en sont à leur stade naissant et avec le temps, ils peuvent proposer de nouvelles fonctionnalités.

Outils utilisés dans les scénarios Big Data

Cluster Big Data

Outils Big Data

NoSQL:

  • CouchDB, Bases de données MongoDB, Cassandra, Redis, ZooKeeper, HBase

MapReduce:

  • Hadoop, Ruche, Cochon, Cascade, Oozie, Kafka, S4, MapR, Flume

Espace de rangement:

  • S3, HDFS (système de fichiers distribués Hadoop)

Les serveurs:

  • Elastic, Heroku, Elastic, Google App Engine, EC2

Traitement

  • R, Yahoo! Tuyaux, Turc mécanique, BigSheets, Datameer

Défis des tests Big Data

  • Automatisation

    Les tests d'automatisation pour le Big Data nécessitent 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

  • La virtualisation

    C'est l'une des phases intégrales des tests. La latence de la machine virtuelle crée des problèmes de synchronisation dans les tests de performances Big Data en temps réel. La gestion des images dans le Big Data est également un problème.

  • Grand jeu 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 plates-formes

Défis des tests de performance

  • 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 les tests de bout en bout. Par exemple, NoSQL peut ne pas convenir aux files d'attente de messages
  • Script de test : un niveau élevé de script 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 : des solutions limitées existent qui peuvent surveiller l'ensemble de l'environnement
  • Solution de diagnostic : une solution personnalisée est nécessaire pour développer pour explorer les zones de goulot d'étranglement des performances

Résumé

  • Alors que l'ingénierie des données et l'analyse des données passent à un niveau supérieur, les tests Big Data sont inévitables.
  • Le traitement des mégadonnées peut être par lots, en temps réel ou interactif
  • Les 3 étapes du test des applications Big Data sont
    • Validation de la mise en scène des données
    • Validation "MapReduce"
    • Phase de validation de sortie
  • Les tests d'architecture sont 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 performance pour le Big Data incluent la vérification
    • Débit de données
    • Traitement de l'information
    • Performance des sous-composants
  • Les tests de Big Data sont très différents des tests de données traditionnels en termes d'outils de données, d'infrastructure et de validation
  • Les défis du Big Data Testing incluent la virtualisation, l'automatisation des tests et la gestion d'un ensemble de données volumineux. Les tests de performance des applications Big Data sont également un problème.