Big-Data-Test-Tutorial: Was ist, Strategie, wie man Hadoop testet

Big-Data-Tests

Big-Data-Tests ist ein Testprozess einer Big-Data-Anwendung, um sicherzustellen, dass alle Funktionalitäten einer Big-Data-Anwendung wie erwartet funktionieren. Das Ziel von Big-Data-Tests besteht darin, sicherzustellen, dass das Big-Data-System reibungslos und fehlerfrei läuft und gleichzeitig die Leistung und Sicherheit aufrechterhält.

Big Data ist eine Sammlung großer Datensätze, die mit herkömmlichen Computertechniken nicht verarbeitet werden können. Testen Für die Verarbeitung dieser Datensätze sind verschiedene Tools, Techniken und Frameworks erforderlich. Big Data bezieht sich auf die Erstellung, Speicherung, den Abruf und die Analyse von Daten, die hinsichtlich Volumen, Vielfalt und Geschwindigkeit bemerkenswert sind. Erfahren Sie mehr über Big Data, Hadoop und MapReduce HIER

Was ist eine Big-Data-Teststrategie?

Beim Testen einer Big-Data-Anwendung handelt es sich eher um eine Überprüfung ihrer Datenverarbeitung als um das Testen einzelner Funktionen des Softwareprodukts. Wenn es um Big-Data-Tests geht, Leistungs- und Funktionstests sind die Schlüssel.

Bei der Big Data-Teststrategie überprüfen QA-Ingenieure die erfolgreiche Verarbeitung von Terabyte an Daten mithilfe von Commodity-Clustern und anderen unterstützenden Komponenten. Dies erfordert ein hohes Maß an Testfähigkeiten, da die Verarbeitung sehr schnell ist. Die Verarbeitung kann auf drei Arten erfolgen

Big-Data-Teststrategie

Darüber hinaus ist die Datenqualität ein wichtiger Faktor beim Hadoop-Testen. Vor dem Testen der Anwendung ist eine Überprüfung der Datenqualität erforderlich und sollte als Teil des Datenbanktests betrachtet werden. Dabei werden verschiedene Merkmale wie Konformität, Genauigkeit, Duplizierung, Konsistenz, Gültigkeit, Datenvollständigkeit usw. überprüft. usw. Als nächstes lernen wir in diesem Tutorial zum Hadoop-Testen, wie man Hadoop-Anwendungen testet.

So testen Sie Hadoop-Anwendungen

Die folgende Abbildung gibt einen Überblick über die Phasen beim Testen von Big Data-Anwendungen.

Testen Sie Hadoop-Anwendungen

Big-Data-Tests oder Hadoop-Tests können grob in drei Schritte unterteilt werden

Schritt 1: Daten-Staging-Validierung

Der erste Schritt in diesem Big-Data-Test-Tutorial wird als Pre-Hadoop-Phase bezeichnet und umfasst die Prozessvalidierung.

  • Daten aus verschiedenen Quellen wie RDBMS, Weblogs, soziale Medien usw. sollten validiert werden, um sicherzustellen, dass korrekte Daten in das System übernommen werden
  • Vergleich der Quelldaten mit den in das Hadoop-System übertragenen Daten, um sicherzustellen, dass sie übereinstimmen
  • Stellen Sie sicher, dass die richtigen Daten extrahiert und in den richtigen HDFS-Speicherort geladen werden

Tools wie Talend, Datenname, kann zur Daten-Staging-Validierung verwendet werden

Schritt 2: „MapReduce“-Validierung

Der zweite Schritt ist eine Validierung von „MapReduce“. In dieser Phase überprüft der Big-Data-Tester die Validierung der Geschäftslogik auf jedem Knoten und validiert sie dann, nachdem er auf mehreren Knoten ausgeführt wurde, um sicherzustellen, dass die

  • Der Map Reduce-Prozess funktioniert ordnungsgemäß
  • Für die Daten werden Regeln zur Datenaggregation oder -trennung implementiert
  • Es werden Schlüssel-Wert-Paare generiert
  • Validierung der Daten nach dem Map-Reduce-Prozess

Schritt 3: Ausgabevalidierungsphase

Die letzte oder dritte Stufe des Hadoop-Tests ist der Ausgabevalidierungsprozess. Die Ausgabedatendateien werden generiert und können je nach Anforderung in ein EDW (Enterprise Data Warehouse) oder ein anderes System verschoben werden.

Zu den Aktivitäten der dritten Stufe gehören:

  • Um zu überprüfen, ob die Transformationsregeln korrekt angewendet werden
  • Zur Überprüfung der Datenintegrität und des erfolgreichen Datenladens in das Zielsystem
  • Um zu überprüfen, dass keine Datenbeschädigung vorliegt, vergleichen Sie die Zieldaten mit den HDFS-Dateisystemdaten

ArchiStrukturprüfung

Hadoop verarbeitet sehr große Datenmengen und ist sehr ressourcenintensiv. Daher sind Architekturtests entscheidend, um den Erfolg Ihres Big-Data-Projekts sicherzustellen. Ein schlecht oder falsch konzipiertes System kann zu Leistungseinbußen führen und das System kann die Anforderungen nicht erfüllen. Zumindest Leistungs- und Failover-Test Dienste sollten in einer Hadoop-Umgebung durchgeführt werden.

Leistungstest umfasst das Testen der Job-Abschlusszeit, der Speichernutzung, des Datendurchsatzes und ähnlicher Systemmetriken. Das Ziel des Failover-Testdienstes besteht darin, zu überprüfen, ob die Datenverarbeitung im Falle eines Ausfalls von Datenknoten reibungslos erfolgt

Performance Testing

Leistungstests für Big Data umfassen zwei Hauptmaßnahmen

  • Datenaufnahme und durchgehend: In dieser Phase überprüft der Big-Data-Tester, wie das schnelle System Daten aus verschiedenen Datenquellen nutzen kann. Beim Testen wird eine andere Nachricht identifiziert, die die Warteschlange in einem bestimmten Zeitrahmen verarbeiten kann. Dazu gehört auch, wie schnell Daten in den zugrunde liegenden Datenspeicher eingefügt werden können, zum Beispiel die Einfügungsrate in einen Mongo und Cassandra Datenbank.
  • Datenverarbeitung: Es geht darum, die Geschwindigkeit zu überprüfen, mit der die Abfragen oder Kartenreduzierungsjobs ausgeführt werden. Dazu gehört auch das isolierte Testen der Datenverarbeitung, wenn der zugrunde liegende Datenspeicher in den Datensätzen aufgefüllt wird. Zum Beispiel das Ausführen von Map Reduce-Jobs auf dem zugrunde liegenden HDFS
  • Unterkomponentenleistung: Diese Systeme bestehen aus mehreren Komponenten und es ist wichtig, jede dieser Komponenten isoliert zu testen. Zum Beispiel, wie schnell die Nachricht indiziert und verarbeitet wird, MapReduce-Jobs, Abfrageleistung, Suche usw.
  • Leistungstestansatz

    Leistungstests für Big-Data-Anwendungen umfassen das Testen großer Mengen strukturierter und unstrukturierter Daten und erfordern einen speziellen Testansatz, um solch große Datenmengen zu testen.

    Leistungstestansatz

    Leistungstests werden in dieser Reihenfolge ausgeführt

    1. Der Prozess beginnt mit der Einrichtung des Big-Data-Clusters, dessen Leistung getestet werden soll
    2. Identifizieren und gestalten Sie entsprechende Workloads
    3. Bereiten Sie einzelne Clients vor (es werden benutzerdefinierte Skripte erstellt)
    4. Führen Sie den Test aus und analysieren Sie das Ergebnis. (Wenn die Ziele nicht erreicht werden, optimieren Sie die Komponente und führen Sie sie erneut aus.)
    5. Optimale Konfiguration

    Parameter für Leistungstests

    Für Leistungstests müssen verschiedene Parameter überprüft werden

    • Datenspeicherung: Wie Daten in verschiedenen Knoten gespeichert werden
    • Commit-Protokolle: Wie groß das Commit-Protokoll werden darf
    • Parallelität: Wie viele Threads können Schreib- und Lesevorgänge ausführen?
    • Caching: Passen Sie die Cache-Einstellungen „Zeilen-Cache“ und „Schlüssel-Cache“ an.
    • Zeitüberschreitungen: Werte für Verbindungszeitüberschreitung, Abfragezeitüberschreitung usw.
    • JVM-Parameter: Heap-Größe, GC-Sammlungsalgorithmen usw.
    • Karten reduzieren die Leistung: Sortieren, Zusammenführen usw.
    • Nachrichtenwarteschlange: Nachrichtenrate, Größe usw.

    Anforderungen an die Testumgebung

    Die Testumgebung muss von der Art der Anwendung abhängen, die Sie testen. Für das Testen von Big-Data-Software sollte die Testumgebung Folgendes umfassen:

    • Es sollte über ausreichend Platz für die Speicherung und Verarbeitung großer Datenmengen verfügen
    • Es sollte einen Cluster mit verteilten Knoten und Daten haben
    • Die CPU- und Speicherauslastung sollte minimal sein, um die Leistung hoch zu halten und die Leistung von Big Data zu testen

    Big-Data-Tests vs. Traditionelle Datenbanktests

    Meine Immobilien Traditionelle Datenbanktests Big-Data-Tests
    Datum Tester arbeiten mit strukturierten Daten Tester arbeitet sowohl mit strukturierten als auch mit unstrukturierten Daten
    Testansatz Der Testansatz ist klar definiert und erprobt Der Testansatz erfordert gezielte Forschungs- und Entwicklungsanstrengungen
    Teststrategie Der Tester hat die Wahl zwischen der manuellen „Sampling“-Strategie oder der „umfassenden Verifizierung“-Strategie durch das Automatisierungstool Die „Sampling“-Strategie in Big Data ist eine Herausforderung
    Infrastruktur Da die Dateigröße begrenzt ist, ist keine spezielle Testumgebung erforderlich Aufgrund der großen Datenmenge und Dateien (HDFS) ist eine spezielle Testumgebung erforderlich.
    Validierungswerkzeuge Der Tester verwendet entweder die Excel-basierte Makros oder UI-basierte Automatisierungstools Keine definierten Tools, die Palette reicht von Programmiertools wie MapReduce bis hin zu HIVEQL
    Testtools Die Verwendung der Testwerkzeuge ist mit grundlegenden Bedienkenntnissen und weniger Schulung möglich. Für die Bedienung eines Testtools sind bestimmte Fähigkeiten und Schulungen erforderlich. Außerdem befinden sich die Tools noch in der Anfangsphase und können im Laufe der Zeit neue Funktionen bieten.

    In Big-Data-Szenarien verwendete Tools

    Big Data Cluster Big-Data-Tools
    NoSQL: CouchDB, Datenbanken MongoDB, Cassandra, Redis, ZooKeeper, HBase
    Karte verkleinern: Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume
    Lagerung: S3, HDFS (Hadoop Distributed File System)
    Server: Elastisch, Heroku, Elastisch, Google App Engine, EC2
    In Bearbeitung R, Yahoo! Rohre, Mechanical Turk, BigSheets, Datameer

    Herausforderungen beim Big-Data-Testen

    • Automation

      Automatisierungstests Für Big Data ist jemand mit technischem Fachwissen erforderlich. Außerdem sind automatisierte Tools nicht für die Bewältigung unerwarteter Probleme geeignet, die beim Testen auftreten

    • Virtualisierung

      Es ist eine der integralen Phasen des Testens. Die Latenz virtueller Maschinen führt zu Zeitproblemen bei Big-Data-Leistungstests in Echtzeit. Auch die Verwaltung von Bildern in Big Data ist mühsam.

    • Großer Datensatz
      • Es müssen mehr Daten überprüft werden, und zwar schneller
      • Der Testaufwand muss automatisiert werden
      • Es muss möglich sein, auf verschiedenen Plattformen zu testen

    Herausforderungen bei Leistungstests

    • Vielfältige Reihe von Technologien: Jede Unterkomponente gehört zu einer anderen Technologie und erfordert isolierte Tests
    • Nichtverfügbarkeit bestimmter Tools: Kein einzelnes Tool kann den End-to-End-Test durchführen. Zum Beispiel, NoSQL ist möglicherweise nicht für Nachrichtenwarteschlangen geeignet
    • Testen Sie die Skripterstellung: Zum Entwerfen von Testszenarien und Testfällen ist ein hohes Maß an Skripterstellung erforderlich
    • Test Umgebung: Aufgrund der großen Datenmenge ist eine spezielle Testumgebung erforderlich
    • Überwachungslösung: Es gibt begrenzte Lösungen, die die gesamte Umgebung überwachen können
    • Diagnoselösung: Es muss eine benutzerdefinierte Lösung entwickelt werden, um die Bereiche mit Leistungsengpässen aufzuschlüsseln

    Zusammenfassung

    • Während Data Engineering und Datenanalyse eine neue Ebene erreichen, sind Big-Data-Tests unumgänglich.
    • Die Big-Data-Verarbeitung kann stapelweise, in Echtzeit oder interaktiv erfolgen
    • Die drei Phasen des Testens von Big-Data-Anwendungen sind die Daten-Staging-Validierung, die „MapReduce“-Validierung und die Ausgabevalidierungsphase
    • ArchiDas Testen von Strukturen ist die wichtige Phase des Big-Data-Testens, da ein schlecht konzipiertes System zu beispiellosen Fehlern und Leistungseinbußen führen kann
    • Leistungstests für Big Data umfassen die Überprüfung des Datendurchsatzes, der Datenverarbeitung und der Leistung von Unterkomponenten
    • Big-Data-Tests unterscheiden sich stark von herkömmlichen Datentests in Bezug auf Daten, Infrastruktur und Validierungstools
    • Zu den Herausforderungen beim Big-Data-Testen gehören Virtualisierung, Testautomatisierung und der Umgang mit großen Datensätzen. Auch Leistungstests von Big-Data-Anwendungen sind ein Thema.