Tutorial sul test dei Big Data: cos'è, strategia, come testare Hadoop

Sommario:

Anonim

Test di Big Data

Big Data Testing è un processo di test di un'applicazione per big data al fine di garantire che tutte le funzionalità di un'applicazione per big data funzionino come previsto. L'obiettivo del test dei big data è assicurarsi che il sistema dei big data funzioni senza intoppi e senza errori, 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. Il test di questi set di dati coinvolge vari strumenti, tecniche e framework da elaborare. I big data si riferiscono alla creazione, archiviazione, recupero e analisi dei dati che sono notevoli in termini di volume, varietà e velocità. Puoi saperne di più su Big Data, Hadoop e MapReduce qui

In questo tutorial sul test dei Big Data imparerai:

  • Cos'è la strategia di test sui Big Data?
  • Come testare le applicazioni Hadoop
  • Test di architettura
  • Test delle prestazioni
  • Approccio al test delle prestazioni
  • Parametri per il test delle prestazioni
  • Esigenze dell'ambiente di prova
  • Test sui big data vs. Test di database tradizionali
  • Strumenti utilizzati negli scenari Big Data
  • Sfide nel test dei Big Data

Cos'è la strategia di test sui Big Data?

Testare l'applicazione Big Data è più una verifica della sua elaborazione dei dati piuttosto che testare le singole funzionalità del prodotto software. Quando si tratta di test di Big Data, le prestazioni e i test funzionali sono le chiavi.

Nella strategia di test sui Big Data, gli ingegneri del controllo qualità verificano la corretta elaborazione di terabyte di dati utilizzando cluster di merci e altri componenti di supporto. Richiede un alto livello di capacità di test poiché l'elaborazione è molto veloce. L'elaborazione può essere di tre tipi

Insieme a questo, anche la qualità dei dati è un fattore importante nei test di Hadoop. Prima di testare l'applicazione, è necessario verificare la qualità dei dati e dovrebbe essere considerata come parte del test del database. Implica il controllo di varie caratteristiche come conformità, accuratezza, duplicazione, coerenza, validità, completezza dei dati, ecc. Successivamente, in questo tutorial Hadoop Testing, impareremo come testare le applicazioni Hadoop.

Come testare le applicazioni Hadoop

La figura seguente offre una panoramica di alto livello delle fasi del test di applicazioni per Big Data

Big Data Testing o Hadoop Testing può essere sostanzialmente suddiviso in tre passaggi

Passaggio 1: convalida della gestione temporanea dei dati

Il primo passaggio in questo tutorial sul test dei big data viene indicato come fase pre-Hadoop che prevede la convalida del processo.

  • I dati da varie fonti come RDBMS, weblog, social media, ecc. Dovrebbero essere convalidati per assicurarsi che i dati corretti vengano inseriti nel sistema
  • Confronto dei dati di origine con i dati inseriti nel sistema Hadoop per assicurarsi che corrispondano
  • Verificare che i dati corretti vengano estratti e caricati nella posizione HDFS corretta

Strumenti come Talend , Datameer, possono essere utilizzati per la convalida della gestione temporanea dei dati

Passaggio 2: convalida di "MapReduce"

Il secondo passo è una convalida di "MapReduce". In questa fase, il tester Big Data verifica la convalida della logica di business su ogni nodo e poi li convalida dopo l'esecuzione su più nodi, assicurando che il

  • Il processo di riduzione della mappa funziona correttamente
  • Le regole di aggregazione o segregazione dei dati sono implementate sui dati
  • Vengono generate coppie di valori chiave
  • Convalida dei dati dopo il processo Map-Reduce

Passaggio 3: fase di convalida dell'output

La fase finale o terza del test di Hadoop è il processo di convalida dell'output. I file di dati di output vengono generati e pronti per essere spostati su un EDW (Enterprise Data Warehouse) o qualsiasi altro sistema in base al requisito.

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 danneggiamento dei dati confrontando i dati di destinazione con i dati del file system HDFS

Test di architettura

Hadoop elabora volumi di dati molto grandi e richiede molte risorse. Pertanto, il test dell'architettura è fondamentale per garantire il successo del tuo progetto Big Data. Un sistema progettato in modo inadeguato o improprio può causare una riduzione delle prestazioni e il sistema potrebbe non soddisfare i requisiti. Almeno, i servizi di test delle prestazioni e del failover devono essere eseguiti in un ambiente Hadoop.

Il test delle prestazioni include il test del tempo di completamento del lavoro, dell'utilizzo della memoria, della velocità effettiva dei dati e di metriche di sistema simili. Mentre il motivo del servizio di test di failover è verificare che l'elaborazione dei dati avvenga senza problemi in caso di guasto dei nodi di dati

Test delle prestazioni

Il test delle prestazioni per i Big Data include due azioni principali

  • Inserimento dati e durante tutto : in questa fase, il tester Big Data verifica in che modo il sistema veloce può consumare i dati da varie origini dati. Il test implica l'identificazione di un messaggio diverso che la coda può elaborare in un determinato periodo 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 database Mongo e Cassandra.
  • Elaborazione dati : implica la verifica della velocità con cui vengono eseguite le query o i lavori di riduzione della mappa. Include anche il test dell'elaborazione dei dati in isolamento quando l'archivio dati sottostante viene popolato all'interno dei set di dati. Ad esempio, l'esecuzione di processi di riduzione della mappa sull'HDFS sottostante
  • Prestazioni dei sottocomponenti : questi sistemi sono costituiti da più componenti ed è essenziale testare ciascuno di questi componenti separatamente. Ad esempio, la velocità con cui il messaggio viene indicizzato e consumato, i lavori MapReduce, le prestazioni delle query, la ricerca e così via.

Approccio al test delle prestazioni

Il test delle prestazioni per l'applicazione di big data comporta il test di enormi volumi di dati strutturati e non strutturati e richiede un approccio di test specifico per testare dati così grandi.

Il test delle prestazioni viene eseguito in questo ordine

  1. Il processo inizia con l'impostazione del cluster di Big Data che deve essere testato per le prestazioni
  2. Identifica e progetta i carichi di lavoro corrispondenti
  3. Preparare singoli client (vengono creati script personalizzati)
  4. Eseguire il test e analizzare il risultato (se gli obiettivi non vengono raggiunti, sintonizzare il componente e rieseguire)
  5. Configurazione ottimale

Parametri per il test delle prestazioni

Vari parametri da verificare per il test delle prestazioni sono

  • Archiviazione dati: modalità di archiviazione dei dati in diversi nodi
  • Log di commit: quanto può crescere il log di commit
  • Concorrenza: quanti thread possono eseguire operazioni di scrittura e lettura
  • Memorizzazione nella cache: ottimizza l'impostazione della cache "cache delle righe" e "cache delle chiavi".
  • Timeout: valori per timeout di connessione, timeout di query, ecc.
  • Parametri JVM: dimensione dell'heap, algoritmi di raccolta GC, ecc.
  • La mappa riduce le prestazioni: ordina, unisci, ecc.
  • Coda messaggi: velocità, dimensioni, ecc.

Esigenze dell'ambiente di prova

L'ambiente di test deve dipendere dal tipo di applicazione che si sta testando. Per il test del software Big Data, l'ambiente di test dovrebbe includere

  • Dovrebbe avere spazio sufficiente per l'archiviazione ed elaborare una grande quantità di dati
  • Dovrebbe avere un cluster con nodi e dati distribuiti
  • Dovrebbe avere un utilizzo minimo della CPU e della memoria per mantenere alte le prestazioni per testare le prestazioni dei Big Data

Test sui big data vs. Test di database tradizionali

Proprietà

Test di database tradizionali

Test di big data

Dati

  • Il tester lavora con dati strutturati
  • Tester funziona con dati sia strutturati che non strutturati

Approccio al test

  • L'approccio al test è ben definito e collaudato nel tempo
  • L'approccio di test richiede sforzi mirati di ricerca e sviluppo

Strategia di test

  • Il tester ha l'opzione della strategia "Campionamento" che esegue manualmente o della strategia "Verifica esaustiva" dallo strumento di automazione
  • La strategia di "campionamento" nei Big Data è una sfida

Infrastruttura

  • Non richiede un ambiente di prova 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 le macro basate su Excel o gli 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 una serie specifica di competenze e formazione per utilizzare uno strumento di test. Inoltre, gli strumenti sono nella loro fase nascente e nel tempo potrebbero presentare nuove funzionalità.

Strumenti utilizzati negli scenari Big Data

Cluster di Big Data

Strumenti per Big Data

NoSQL:

  • CouchDB, database MongoDB, Cassandra, Redis, ZooKeeper, HBase

Riduci mappa:

  • Hadoop, Hive, Maiale, Cascading, Oozie, Kafka, S4, MapR, Flume

Conservazione:

  • S3, HDFS (file system distribuito Hadoop)

Server:

  • Elastic, Heroku, Elastic, Google App Engine, EC2

in lavorazione

  • R, Yahoo! Tubi, Turco meccanico, BigSheets, Datameer

Sfide nel test dei Big Data

  • Automazione

    I test di automazione per i Big Data richiedono qualcuno con esperienza tecnica. Inoltre, gli strumenti automatizzati non sono attrezzati per gestire problemi imprevisti che si verificano durante i test

  • Virtualizzazione

    È una delle fasi integranti del test. La latenza della macchina virtuale crea problemi di temporizzazione nei test delle prestazioni dei big data in tempo reale. Anche la gestione delle immagini in 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

  • Diverso set 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. Ad esempio, NoSQL potrebbe non adattarsi alle code di messaggi
  • Script di test : è necessario un livello elevato di scripting per progettare scenari di test e casi di test
  • Ambiente di test : necessita di un ambiente di test speciale a causa delle grandi dimensioni dei dati
  • Soluzione di monitoraggio : esistono soluzioni limitate in grado di monitorare l'intero ambiente
  • Soluzione diagnostica : è necessaria una soluzione personalizzata da sviluppare per eseguire il drill-down delle aree dei colli di bottiglia delle prestazioni

Sommario

  • Man mano che l'ingegneria dei dati e l'analisi dei dati avanzano a un livello successivo, il test dei Big Data è inevitabile.
  • L'elaborazione dei big data potrebbe essere batch, in tempo reale o interattiva
  • Le 3 fasi del test delle applicazioni Big Data sono
    • Convalida della gestione temporanea dei dati
    • Convalida "MapReduce"
    • Fase di convalida dell'output
  • Il test dell'architettura è la fase importante del test dei Big Data, poiché un sistema mal progettato può portare a errori senza precedenti e al degrado delle prestazioni
  • Il test delle prestazioni per i Big Data include la verifica
    • Velocità effettiva dei dati
    • Elaborazione dati
    • Prestazioni dei sottocomponenti
  • Il test dei big data è molto diverso dal test tradizionale dei dati in termini di dati, infrastruttura e strumenti di convalida
  • Le sfide del Big Data Testing 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 è un problema.