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. Tests 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 werden auf dieser Seite erlรคutert

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

    Eigenschaften im Vergleich 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
    Verarbeitung 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.

    Fassen Sie diesen Beitrag mit folgenden Worten zusammen: