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

Strategia di test sui Big Data

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

Testare le applicazioni Hadoop

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.
  • Elaborazione dati: Si tratta di verificare la velocità con cui vengono eseguite le query o i lavori di map reduce. Include anche il test dell'elaborazione dei dati in modo isolato quando l'archivio dati sottostante viene popolato all'interno dei set di dati. Ad esempio, eseguendo processi Map Reduce sul sottostante HDFS
  • Prestazioni del sottocomponente: 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 utilizzato, i lavori MapReduce, le prestazioni delle query, la ricerca, ecc.
  • 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.

    Approccio al test delle prestazioni

    Il test delle prestazioni viene eseguito in questo ordine

    1. Il processo inizia con l'impostazione del cluster Big Data di cui si devono testare le prestazioni
    2. Identificare e progettare i carichi di lavoro corrispondenti
    3. Preparare i singoli client (vengono creati script personalizzati)
    4. Esegui il test e analizza il risultato (se gli obiettivi non vengono raggiunti, regola il componente ed esegui nuovamente)
    5. 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.