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
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.
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.
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.
Leistungstests werden in dieser Reihenfolge ausgefรผhrt
- Der Prozess beginnt mit der Einrichtung des Big-Data-Clusters, dessen Leistung getestet werden soll
- Identifizieren und gestalten Sie entsprechende Workloads
- Bereiten Sie einzelne Clients vor (es werden benutzerdefinierte Skripte erstellt)
- 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.)
- 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.



