Tutorial sul test dei Big Data: cos'è, strategia, come testare Hadoop
Test sui Big Data
Test sui Big Data è un processo di test di un'applicazione Big Data per garantire che tutte le funzionalità di un'applicazione Big Data funzionino come previsto. L'obiettivo dei test sui Big Data è garantire che il sistema Big Data funzioni in modo fluido e privo di errori, pur mantenendo le prestazioni e la sicurezza.
I big data sono una raccolta di grandi set di dati che non possono essere elaborati utilizzando le tecniche informatiche tradizionali. Testing di questi set di dati comporta vari strumenti, tecniche e strutture da elaborare. I big data riguardano la creazione, l’archiviazione, il recupero e l’analisi dei dati che sono notevoli in termini di volume, varietà e velocità. Puoi saperne di più su Big Data, Hadoop e MapReduce qui
Cos’è la strategia di test dei Big Data?
Testare l'applicazione Big Data significa più verificare l'elaborazione dei dati piuttosto che testare le singole funzionalità del prodotto software. Quando si tratta di test sui Big Data, test prestazionali e funzionali sono le chiavi.
Nella strategia di test dei Big Data, gli ingegneri del controllo qualità verificano la corretta elaborazione di terabyte di dati utilizzando cluster di materie prime e altri componenti di supporto. Richiede un elevato livello di capacità di test poiché l'elaborazione è molto veloce. Il trattamento può essere di tre tipi
Oltre a ciò, anche la qualità dei dati è un fattore importante nei test Hadoop. Prima di testare l'applicazione, è necessario verificare la qualità dei dati e dovrebbe essere considerato come parte del test del database. Si tratta di verificare diverse caratteristiche quali conformità, accuratezza, duplicazione, coerenza, validità, completezza dei dati, ecc. Successivamente in questo tutorial sul test di Hadoop, impareremo come testare le applicazioni Hadoop.
Come testare le applicazioni Hadoop
La figura seguente fornisce una panoramica di alto livello delle fasi di test delle applicazioni Big Data
Il test dei Big Data o il test Hadoop può essere sostanzialmente suddiviso in tre fasi
Passaggio 1: convalida della gestione temporanea dei dati
Il primo passaggio in questo tutorial sui test dei Big Data, definito fase pre-Hadoop, prevede la convalida del processo.
- Dati provenienti da varie fonti come RDBMS, weblog, social media, ecc. dovrebbero essere convalidati per garantire che i dati corretti vengano inseriti nel sistema
- Confrontando i dati di origine con i dati inseriti nel sistema Hadoop per assicurarsi che corrispondano
- Verifica che i dati corretti vengano estratti e caricati nella posizione HDFS corretta
Strumenti come Talend, Datameer, può essere utilizzato per la convalida della gestione temporanea dei dati
Passaggio 2: convalida "MapReduce".
Il secondo passo è una convalida di “MapReduce”. In questa fase, il tester dei Big Data verifica la convalida della logica di business su ogni nodo e quindi la convalida dopo l'esecuzione su più nodi, assicurando che il
- Il processo di riduzione della mappa funziona correttamente
- Sui dati vengono implementate regole di aggregazione o segregazione dei dati
- Vengono generate coppie chiave-valore
- Convalida dei dati dopo il processo Map-Reduce
Passaggio 3: fase di convalida dell'output
La fase finale o terza del test Hadoop è il processo di convalida dell'output. I file di dati di output vengono generati e pronti per essere spostati in un EDW (Enterprise Data Warehouse) o in qualsiasi altro sistema in base alle esigenze.
Le attività nella terza fase includono
- Per verificare che le regole di trasformazione siano applicate correttamente
- Per verificare l'integrità dei dati e il corretto caricamento dei dati nel sistema di destinazione
- Per verificare che non vi sia corruzione dei dati confrontando i dati di destinazione con i dati del file system HDFS
ArchiTest di tecnologia
Hadoop elabora volumi di dati molto grandi e richiede molte risorse. Quindi, i test architetturali sono fondamentali per garantire il successo del tuo progetto Big Data. Un sistema progettato male o in modo improprio può portare a un degrado delle prestazioni e il sistema potrebbe non soddisfare i requisiti. Almeno, Test delle prestazioni e del failover i servizi dovrebbero essere eseguiti in un ambiente Hadoop.
Test delle prestazioni include test del tempo di completamento del lavoro, dell'utilizzo della memoria, della velocità di trasmissione dei dati e di parametri di sistema simili. Mentre lo scopo del servizio di test di failover è verificare che l'elaborazione dei dati avvenga senza problemi in caso di guasto dei nodi dati
Test di Performance
Il test delle prestazioni per i Big Data comprende due azioni principali
- Ingestione di dati e in tutto: In questa fase, il tester dei Big Data verifica come il sistema veloce può consumare dati da varie fonti di dati. Il test implica l'identificazione di un messaggio diverso che la coda può elaborare in un determinato intervallo di tempo. Include anche la velocità con cui i dati possono essere inseriti nell'archivio dati sottostante, ad esempio la velocità di inserimento in un Mongo e Cassandra banca dati.
Approccio al test delle prestazioni
Il test delle prestazioni per le applicazioni Big Data prevede il test di enormi volumi di dati strutturati e non strutturati e richiede un approccio di test specifico per testare dati così massicci.
Il test delle prestazioni viene eseguito in questo ordine
- Il processo inizia con l'impostazione del cluster Big Data di cui si devono testare le prestazioni
- Identificare e progettare i carichi di lavoro corrispondenti
- Preparare i singoli client (vengono creati script personalizzati)
- Esegui il test e analizza il risultato (se gli obiettivi non vengono raggiunti, regola il componente ed esegui nuovamente)
- Configurazione ottimale
Parametri per il test delle prestazioni
Sono vari i parametri da verificare per il test delle prestazioni
- Archiviazione dei dati: come i dati vengono archiviati in diversi nodi
- Registri di commit: quanto è possibile aumentare le dimensioni del log di commit
- Concorrenza: quanti thread possono eseguire operazioni di scrittura e lettura
- Caching: ottimizza l'impostazione della cache "cache delle righe" e "cache delle chiavi".
- Timeout: valori per timeout della connessione, timeout della query, ecc.
- Parametri JVM: dimensione heap, algoritmi di raccolta GC, ecc.
- La mappa riduce le prestazioni: ordina, unisce, ecc.
- Coda di messaggi: velocità dei messaggi, dimensione, ecc.
Esigenze dell'ambiente di prova
L'ambiente di test deve dipendere dal tipo di applicazione che stai testando. Per i test del software Big Data, l'ambiente di test dovrebbe comprendere
- Dovrebbe avere spazio sufficiente per archiviare ed elaborare una grande quantità di dati
- Dovrebbe avere un cluster con nodi e dati distribuiti
- Dovrebbe avere un utilizzo minimo di CPU e memoria per mantenere elevate le prestazioni e testare le prestazioni dei Big Data
Test sui Big Data vs. Test di database tradizionali
Properties | Test tradizionali del database | Test sui big data |
---|---|---|
Dati | Il tester lavora con dati strutturati | Tester funziona sia con dati strutturati che non strutturati |
Approccio alla prova | L'approccio al test è ben definito e testato nel tempo | L’approccio di test richiede sforzi mirati di ricerca e sviluppo |
Strategia di test | Il tester ha la possibilità di eseguire manualmente la strategia di "campionamento" o la strategia di "verifica esaustiva" tramite lo strumento di automazione | La strategia di “campionamento” nei Big Data è una sfida |
Infrastruttura | Non richiede un ambiente di test speciale poiché la dimensione del file è limitata | Richiede un ambiente di test speciale a causa delle grandi dimensioni dei dati e dei file (HDFS) |
Strumenti di convalida | Tester utilizza il file basato su Excel macro o strumenti di automazione basati sull'interfaccia utente | Nessuno strumento definito, la gamma è vasta, da strumenti di programmazione come MapReduce a HIVEQL |
Strumenti di test | Gli strumenti di test possono essere utilizzati con conoscenze operative di base e meno formazione. | Richiede un insieme specifico di competenze e formazione per utilizzare uno strumento di test. Inoltre, gli strumenti sono nella loro fase nascente e nel tempo potrebbero essere disponibili nuove funzionalità. |
Strumenti utilizzati negli scenari Big Data
Big Data Cluster | Strumenti per Big Data |
---|---|
NessunSQL: | CouchDB, Banche dati MongoDB, Cassandra, Redis, ZooKeeper, HBase |
Riduci mappa: | Hadoop, Hive, Maiale, Cascata, Oozie, Kafka, S4, MapR, Flume |
Memoria su disco: | S3, HDFS (file system distribuito Hadoop) |
Server: | Elastico, Heroku, Elastico, Google App Engine, EC2 |
Processando | R, Yahoo! Tubi, Turk Meccanico, BigSheets, Datameer |
Sfide nei test sui Big Data
- Automazione
Test di automazione per i Big Data è necessario qualcuno con competenze tecniche. Inoltre, gli strumenti automatizzati non sono attrezzati per gestire problemi imprevisti che si presentano durante i test
- Virtualization
È una delle fasi integrali del test. La latenza della macchina virtuale crea problemi di temporizzazione nei test delle prestazioni dei big data in tempo reale. Anche gestire le immagini nei Big Data è una seccatura.
- Set di dati di grandi dimensioni
- È necessario verificare più dati e farlo più velocemente
- Necessità di automatizzare lo sforzo di test
- È necessario essere in grado di eseguire test su piattaforme diverse
Sfide di test delle prestazioni
- Insieme diversificato di tecnologie: Ogni sottocomponente appartiene a una tecnologia diversa e richiede test isolati
- Indisponibilità di strumenti specifici: Nessun singolo strumento può eseguire il test end-to-end. Per esempio, NoSQL potrebbe non essere adatto alle code di messaggi
- Prova di scripting: è necessario un elevato livello di scripting per progettare scenari di test e casi di test
- Ambiente di test: Richiede un ambiente di test speciale a causa della grande dimensione dei dati
- Soluzione di monitoraggio: Esistono soluzioni limitate in grado di monitorare l'intero ambiente
- Soluzione diagnostica: è necessario sviluppare una soluzione personalizzata per approfondire le aree di collo di bottiglia delle prestazioni
Sommario
- Man mano che l’ingegneria e l’analisi dei dati avanzano a un livello successivo, i test sui Big Data sono inevitabili.
- L'elaborazione dei big data può essere batch, in tempo reale o interattiva
- Le 3 fasi del test delle applicazioni Big Data sono la convalida dello staging dei dati, la convalida "MapReduce" e la fase di convalida dell'output
- ArchiIl test della struttura è la fase importante del test dei Big Data, poiché un sistema mal progettato può portare a errori senza precedenti e al degrado delle prestazioni
- I test delle prestazioni per i Big Data includono la verifica del throughput dei dati, dell'elaborazione dei dati e delle prestazioni dei sottocomponenti
- I test sui Big Data sono molto diversi dai test tradizionali sui dati in termini di dati, infrastruttura e strumenti di convalida
- Le sfide dei test sui Big Data includono la virtualizzazione, l'automazione dei test e la gestione di set di dati di grandi dimensioni. Anche il test delle prestazioni delle applicazioni Big Data rappresenta un problema.