Tutorial de testare Big Data: Ce este, strategie, cum se testează
⚡ Rezumat inteligent
Testarea Big Data verifică dacă o aplicație Big Data procesează terabytes de date corect, rapid și sigur, combinând validarea stadializării datelor, validarea MapReduce și validarea ieșirilor cu verificări ale arhitecturii și performanței într-un cluster Hadoop distribuit.
Ce este testarea Big Data?
Testarea Big Data este un proces de testare a unei aplicații Big Data pentru a se asigura că toate funcționalitățile unei aplicații Big Data funcționează conform așteptărilor. Scopul testării Big Data este de a se asigura că sistemul Big Data funcționează fără probleme și fără erori, menținând în același timp performanța și securitatea.
Big data reprezintă o colecție de seturi de date mari care nu pot fi procesate folosind tehnici tradiționale de calcul. Testarea acestor seturi de date implică diverse instrumente, tehnici și cadre de lucru pentru procesare. Big data se referă la crearea, stocarea, recuperarea și analiza datelor, care sunt remarcabile în ceea ce privește volumul, varietatea și viteza. Puteți afla mai multe despre Datele mari, Hadoop și MapReduce înainte de a începe testarea.
Ce este strategia de testare a datelor mari?
Testarea unei aplicații Big Data înseamnă mai degrabă verificarea procesării datelor sale decât testarea caracteristicilor individuale ale produsului software. Când vine vorba de testarea Big Data, testarea performanței și funcțională sunt esențiale.
Într-o strategie de testare Big Data, inginerii QA verifică procesarea cu succes a unor terabytes de date folosind un cluster commodity și alte componente de suport. Aceasta necesită un nivel ridicat de abilități de testare, deoarece procesarea este foarte rapidă. Procesarea poate fi de trei tipuri:
- Procesare lot: Datele stocate sunt procesate conform unui program, astfel încât testele vizează finalizarea și acuratețea lucrărilor.
- Procesare în timp real: Înregistrările sunt procesate la sosire, așadar testele vizează latența și pierderea de date.
- Prelucrare interactivă: Analiștii efectuează interogări directe, așadar testele vizează timpul de răspuns la interogările ad-hoc.
Diagrama de mai jos rezumă strategia.
Pe lângă aceasta, calitatea datelor este, de asemenea, un factor important în testarea Hadoop. Înainte de a testa aplicația, este necesar să se verifice calitatea datelor, iar acest lucru ar trebui considerat ca parte a testării bazei de date. Aceasta implică verificarea diverselor caracteristici, cum ar fi conformitatea, acuratețea, duplicarea, consistența, validitatea, caracterul complet al datelor etc. În continuare, în acest tutorial de testare Hadoop, vom învăța cum să testăm aplicațiile Hadoop.
Cum să testezi aplicațiile Hadoop
Următoarea figură oferă o imagine de ansamblu asupra fazelor de testare a aplicațiilor Big Data.
Testarea Big Data, sau testarea Hadoop, poate fi împărțită în general în trei etape.
Pasul 1: Validarea stadii de date
Primul pas din acest tutorial de testare Big Data este denumit etapa pre-Hadoop și implică validarea procesului.
- Datele din diverse surse, cum ar fi RDBMS, bloguri, rețele sociale etc., ar trebui validate pentru a ne asigura că datele corecte sunt introduse în sistem.
- Compararea datelor sursă cu datele introduse în sistemul Hadoop pentru a vă asigura că se potrivesc
- Verificați dacă datele corecte sunt extracîncărcat în locația corectă HDFS locaţie
Instrumente de genul Talend iar Datameer poate fi utilizat pentru validarea stadializării datelor.
Pasul 2: Validarea „MapReduce”.
Al doilea pas este validarea funcției „MapReduce”. În această etapă, testerul Big Data verifică validarea logicii de business pe fiecare nod și apoi o validează după rularea pe mai multe noduri, asigurându-se că:
- Procesul MapReduce funcționează corect
- Regulile de agregare sau segregare a datelor sunt implementate asupra datelor
- Sunt generate perechi valori cheie
- Validarea datelor după procesul MapReduce
Pasul 3: Faza de validare a ieșirii
Etapa finală sau a treia a testării Hadoop este procesul de validare a rezultatelor. Fișierele de date de ieșire sunt generate și gata pentru a fi mutate într-un EDW (Enterprise Data Warehouse) sau orice alt sistem bazat pe cerințe.
Activitățile din etapa a treia includ:
- Pentru a verifica regulile de transformare sunt aplicate corect
- Pentru a verifica integritatea datelor și încărcarea cu succes a datelor în sistemul țintă
- Pentru a verifica dacă nu există nicio corupție a datelor prin compararea datelor țintă cu datele sistemului de fișiere HDFS
ArchiTestare de tectură
Atenția se mută acum de la date la clusterul care le transportă.
Hadoop procesează volume foarte mari de date și consumă foarte multe resurse. Prin urmare, testarea arhitecturală este crucială pentru a asigura succesul proiectului dumneavoastră Big Data. Un sistem proiectat prost sau necorespunzător poate duce la degradarea performanței, iar sistemul ar putea să nu îndeplinească cerințele. Cel puțin, performanță iar serviciile de testare pentru failover ar trebui să fie rulate într-un mediu Hadoop.
Testarea performanței include testarea timpului de finalizare a lucrărilor, a utilizării memoriei, a debitului de date și a unor metrici similare ale sistemului. Scopul serviciului de testare failover este de a verifica dacă procesarea datelor are loc fără probleme în cazul unei defecțiuni a nodurilor de date.
Test de performanta
Testarea performanței pentru Big Data acoperă trei domenii principale.
- Ingerarea și debitul datelor: În această etapă, testerul Big Data verifică cât de repede poate sistemul să consume date din diverse surse de date. Testarea implică identificarea numărului de mesaje pe care coada le poate procesa într-un interval de timp dat. De asemenea, include cât de repede pot fi inserate datele în depozitul de date subiacent, de exemplu, rata de inserare într-un MongoDB și Cassandra Bază de date.
- Procesarea datelor: Implică verificarea vitezei cu care sunt executate interogările sau joburile MapReduce. De asemenea, include testarea procesării datelor în mod izolat atunci când depozitul de date subiacent este populat în seturile de date. De exemplu, rularea joburilor MapReduce pe HDFS-ul subiacent.
- Performanța subcomponentelor: Aceste sisteme sunt alcătuite din mai multe componente și este esențial să se testeze fiecare dintre aceste componente în mod izolat. De exemplu, cât de repede este indexat și consumat mesajul, joburi MapReduce, performanța interogărilor, căutarea etc.
Abordarea de testare a performanței
Testarea performanței pentru o aplicație Big Data implică testarea unor volume uriașe de date structurate și nestructurate și necesită o abordare specifică de testare pentru a testa astfel de date masive.
Fluxul de lucru de mai jos prezintă secvența pe care o urmează un test de performanță.
Testarea performanței se execută în această ordine.
- Procesul începe cu configurarea clusterului Big Data, care urmează să fie testat pentru performanță.
- Identificați și proiectați sarcinile de lucru corespunzătoare
- Pregătirea clienților individuali (se creează scenarii personalizate)
- Executați testul și analizați rezultatele (dacă obiectivele nu sunt îndeplinite, atunci reglați componenta și executați-o din nou)
- Configurație optimă
Parametri pentru testarea performanței
Diverși parametri care trebuie verificați pentru testarea performanței sunt:
- Stocare a datelor: Cum sunt stocate datele în diferite noduri
- Jurnalele de validare: Cât de mare poate crește jurnalul de commit-uri
- Concurență: Câte fire de execuție pot efectua operațiuni de scriere și citire
- Memorarea în cache: Reglați setările cache „cache de rânduri” și „cache de chei”
- Timeouts: Valori pentru timeout-ul conexiunii, timeout-ul interogării etc.
- Parametrii JVM: Dimensiunea heap-ului, algoritmi de colectare GC etc.
- Performanța MapReduce: Sortează, îmbină etc.
- Coadă de mesaje: Rata mesajelor, dimensiunea etc.
Nevoile mediului de testare
Nevoile mediului de testare depind de tipul de aplicație pe care o testați. Pentru testarea software-ului Big Data, mediul de testare ar trebui să cuprindă următoarele.
- Ar trebui să aibă suficient spațiu pentru stocarea și procesarea unei cantități mari de date
- Ar trebui să aibă un cluster cu noduri distribuite și date
- Ar trebui să aibă o utilizare minimă a CPU și a memoriei pentru a menține performanța ridicată pentru a testa performanța Big Data
Testarea Big Data vs. testarea tradițională a bazelor de date
Tabelul de mai jos compară cele două discipline, proprietate cu proprietate.
| Proprietăţi | Testarea bazelor de date tradiționale | Testarea Big Data |
|---|---|---|
| Date | Testerul lucrează cu date structurate | Testerul funcționează atât cu date structurate, cât și cu date nestructurate |
| Abordarea de testare | Abordarea de testare este bine definită și testată în timp | Abordarea de testare necesită eforturi concentrate de cercetare și dezvoltare |
| Strategia de testare | Testerul are opțiunea strategiei de „Eșantionare” realizată manual sau a strategiei de „Verificare exhaustivă” realizată prin intermediul unui instrument de automatizare. | Strategia de „eșantionare” în Big Data este o provocare |
| Infrastructură | Nu necesită un mediu de testare special, deoarece dimensiunea fișierului este limitată | Necesită un mediu de testare special datorită dimensiunii mari a datelor și fișierelor (HDFS) |
| Instrumente de validare | Testerul folosește fie macrocomenzi bazate pe Excel, fie instrumente de automatizare bazate pe interfața utilizator | Nu există instrumente definite; gama este vastă, de la instrumente de programare precum MapReduce la HiveQL |
| Instrumente de testare | Instrumentele de testare pot fi utilizate cu cunoștințe de operare de bază și mai puțină instruire | Este nevoie de un set specific de abilități și instruire pentru a opera un instrument de testare. De asemenea, instrumentele sunt în stadiu incipient și, în timp, pot veni cu noi funcționalități. |
Instrumente utilizate în scenariile Big Data
Tabelul de mai jos grupează instrumentele comune în funcție de stratul clusterului.
| Datele mari Cluster | Instrumente de date mari |
|---|---|
| NoSQL: | CouchDB, Baze de date MongoDB, Cassandra, Redis, ZooKeeper, HBase |
| MapReduce: | Hadoop, Stup, Porc, Cascadă, Oozie, Kafka, S4, MapR, uluc |
| Depozitare: | S3, HDFS (Sistem de fișiere distribuit Hadoop) |
| Servere: | elastic, Heroku, Google Motor de aplicații, EC2 |
| Prelucrare: | R, Yahoo! Tevi, Mechanical Turk, BigSheets, Datameer |
Provocări în testarea Big Data
Trei obstacole practice apar în aproape fiecare proiect Big Data.
- Automatizare: Testarea automatizării Pentru Big Data este nevoie de cineva cu expertiză tehnică. De asemenea, instrumentele automate nu sunt echipate pentru a gestiona problemele neașteptate care apar în timpul testării.
- Virtualizare: Este una dintre fazele integrante ale testării. Latența mașinilor virtuale creează probleme de sincronizare în testarea performanței Big Data în timp real. De asemenea, gestionarea imaginilor în Big Data este o bătaie de cap.
- Set de date mare: Trei presiuni vin la pachet cu volum.
- Trebuie să verificați mai multe date și trebuie să o faceți mai rapid
- Trebuie automatizat efortul de testare
- Trebuie să poți testa pe diferite platforme
Provocări de testare a performanței
- Set divers de tehnologii: Fiecare subcomponentă aparține unei tehnologii diferite și necesită testare separată.
- Indisponibilitatea anumitor instrumente: Niciun instrument singular nu poate efectua testarea end-to-end. De exemplu, NoSQL s-ar putea să nu fie potrivit pentru cozile de mesaje.
- Scriptare de testare: Este necesar un grad ridicat de scriptare pentru a proiecta scenarii de testare și cazuri de testare
- Mediu de testare: Necesită un mediu de testare special din cauza dimensiunii mari a datelor
- Soluție de monitorizare: Există soluții limitate care pot monitoriza întregul mediu
- Soluție de diagnosticare: Este necesară o soluție personalizată pentru a analiza în detaliu zonele cu probleme de performanță.



