Tutorial de teste de Big Data: o que é, estratégia, como testar o Hadoop

Teste de Big Data

Teste de Big Data é um processo de teste de um aplicativo de big data para garantir que todas as funcionalidades de um aplicativo de big data funcionem conforme o esperado. O objetivo dos testes de big data é garantir que o sistema de big data funcione sem problemas e sem erros, mantendo o desempenho e a segurança.

Big data é uma coleção de grandes conjuntos de dados que não podem ser processados ​​usando técnicas de computação tradicionais. Ensaios desses conjuntos de dados envolve várias ferramentas, técnicas e estruturas para processamento. Big data está relacionado à criação, armazenamento, recuperação e análise de dados que são notáveis ​​em termos de volume, variedade e velocidade. Você pode aprender mais sobre Big Data, Hadoop e MapReduce aqui

O que é estratégia de teste de Big Data?

Testar aplicativos de Big Data é mais uma verificação de seu processamento de dados do que testar os recursos individuais do produto de software. Quando se trata de testes de Big Data, desempenho e testes funcionais são as chaves.

Na estratégia de testes de Big Data, os engenheiros de controle de qualidade verificam o processamento bem-sucedido de terabytes de dados usando cluster de commodities e outros componentes de suporte. Exige um alto nível de habilidades de teste, pois o processamento é muito rápido. O processamento pode ser de três tipos

Estratégia de teste de Big Data

Junto com isso, a qualidade dos dados também é um fator importante nos testes do Hadoop. Antes de testar a aplicação, é necessário verificar a qualidade dos dados e deve ser considerada como parte do teste do banco de dados. Envolve a verificação de várias características como conformidade, precisão, duplicação, consistência, validade, integridade dos dados, A seguir neste tutorial de teste do Hadoop, aprenderemos como testar aplicativos Hadoop.

Como testar aplicativos Hadoop

A figura a seguir fornece uma visão geral resumida das fases de teste de aplicativos de Big Data

Testar aplicativos Hadoop

O teste de Big Data ou teste de Hadoop pode ser amplamente dividido em três etapas

Etapa 1: Validação de teste de dados

A primeira etapa neste tutorial de teste de big data é conhecida como estágio pré-Hadoop e envolve validação de processo.

  • Dados de várias fontes, como RDBMS, weblogs, mídias sociais, etc. devem ser validados para garantir que os dados corretos sejam inseridos no sistema
  • Comparar os dados de origem com os dados enviados ao sistema Hadoop para garantir que eles correspondam
  • Verifique se os dados corretos foram extraídos e carregados no local correto do HDFS

Ferramentas como Talend, datameer, pode ser usado para validação de preparação de dados

Etapa 2: Validação “MapReduce”

A segunda etapa é uma validação do “MapReduce”. Neste estágio, o testador de Big Data verifica a validação da lógica de negócios em cada nó e, em seguida, valida-os após a execução em vários nós, garantindo que o

  • O processo de redução de mapa funciona corretamente
  • Regras de agregação ou segregação de dados são implementadas nos dados
  • Pares de valores-chave são gerados
  • Validando os dados após o processo Map-Reduce

Etapa 3: Fase de validação de saída

O último ou terceiro estágio do teste do Hadoop é o processo de validação de saída. Os arquivos de dados de saída são gerados e prontos para serem movidos para um EDW (Enterprise Data Warehouse) ou qualquer outro sistema baseado na necessidade.

As atividades da terceira etapa incluem

  • Para verificar se as regras de transformação foram aplicadas corretamente
  • Para verificar a integridade dos dados e o carregamento de dados bem-sucedido no sistema de destino
  • Para verificar se não há corrupção de dados comparando os dados de destino com os dados do sistema de arquivos HDFS

ArchiTeste de arquitetura

O Hadoop processa volumes muito grandes de dados e consome muitos recursos. Conseqüentemente, os testes de arquitetura são cruciais para garantir o sucesso do seu projeto de Big Data. Um sistema mal projetado ou inadequado pode levar à degradação do desempenho e o sistema pode não atender aos requisitos. Pelo menos, Teste de desempenho e failover os serviços devem ser feitos em um ambiente Hadoop.

Teste de performance inclui testes de tempo de conclusão do trabalho, utilização de memória, taxa de transferência de dados e métricas de sistema semelhantes. Embora o motivo do serviço de teste de failover seja verificar se o processamento de dados ocorre perfeitamente em caso de falha dos nós de dados

Teste de Desempenho

O teste de desempenho para Big Data inclui duas ações principais

  • Ingestão de dados e durante todo: neste estágio, o testador de Big Data verifica como o sistema rápido pode consumir dados de diversas fontes de dados. O teste envolve a identificação de uma mensagem diferente que a fila pode processar em um determinado período de tempo. Também inclui a rapidez com que os dados podem ser inseridos no armazenamento de dados subjacente, por exemplo, a taxa de inserção em um Mongo e Cassandra banco de dados.
  • Processamento de dados: envolve verificar a velocidade com que as consultas ou trabalhos de redução de mapa são executados. Também inclui testar o processamento de dados isoladamente quando o armazenamento de dados subjacente é preenchido nos conjuntos de dados. Por exemplo, executar tarefas Map Reduce no subjacente HDFS
  • Desempenho do Subcomponente: Esses sistemas são compostos por vários componentes e é essencial testar cada um desses componentes isoladamente. Por exemplo, a rapidez com que a mensagem é indexada e consumida, trabalhos MapReduce, desempenho de consulta, pesquisa, etc.
  • Abordagem de teste de desempenho

    Os testes de desempenho para aplicações de big data envolvem testes de grandes volumes de dados estruturados e não estruturados e requerem uma abordagem de teste específica para testar esses dados massivos.

    Abordagem de teste de desempenho

    O teste de desempenho é executado nesta ordem

    1. O processo começa com a configuração do cluster de Big data que será testado quanto ao desempenho
    2. Identifique e projete cargas de trabalho correspondentes
    3. Preparar clientes individuais (scripts personalizados são criados)
    4. Execute o teste e analise o resultado (se os objetivos não forem alcançados, ajuste o componente e execute novamente)
    5. Configuração ideal

    Parâmetros para testes de desempenho

    Vários parâmetros a serem verificados para testes de desempenho são

    • Armazenamento de dados: como os dados são armazenados em diferentes nós
    • Logs de commit: até que ponto o log de commit pode crescer
    • Simultaneidade: quantos threads podem realizar operações de gravação e leitura
    • Cache: ajuste a configuração de cache “cache de linha” e “cache de chave”.
    • Timeouts: Valores para tempo limite de conexão, tempo limite de consulta, etc.
    • Parâmetros JVM: tamanho de heap, algoritmos de coleta de GC, etc.
    • O mapa reduz o desempenho: classifica, mescla, etc.
    • Fila de mensagens: taxa de mensagens, tamanho, etc.

    Necessidades do ambiente de teste

    O ambiente de teste precisa depender do tipo de aplicativo que você está testando. Para testes de software de Big Data, o ambiente de teste deve abranger

    • Deve ter espaço suficiente para armazenar e processar uma grande quantidade de dados
    • Deve ter um cluster com nós e dados distribuídos
    • Deve ter utilização mínima de CPU e memória para manter o desempenho alto e testar o desempenho do Big Data

    Teste de big data vs. Teste de banco de dados tradicional

    Propriedades Teste de banco de dados tradicional Testes de big data
    Data Trabalho do testador com dados estruturados O testador funciona com dados estruturados e não estruturados
    Abordagem de teste A abordagem de teste é bem definida e testada ao longo do tempo A abordagem de teste requer esforços concentrados de P&D
    Estratégia de teste O testador tem a opção de estratégia de “Amostragem” feita manualmente ou estratégia de “Verificação Exaustiva” pela ferramenta de automação Estratégia de “amostragem” em Big data é um desafio
    Infraestrutura Não requer um ambiente de teste especial, pois o tamanho do arquivo é limitado Requer um ambiente de teste especial devido ao grande tamanho de dados e arquivos (HDFS)
    Ferramentas de validação O testador usa o software baseado em Excel macros ou ferramentas de automação baseadas em UI Sem ferramentas definidas, a gama é vasta, desde ferramentas de programação como MapReduce até HIVEQL
    Ferramentas de teste As ferramentas de teste podem ser usadas com conhecimento operacional básico e menos treinamento. Requer um conjunto específico de habilidades e treinamento para operar uma ferramenta de teste. Além disso, as ferramentas estão em seu estágio inicial e, com o tempo, poderão surgir novos recursos.

    Ferramentas usadas em cenários de Big Data

    Big Data Cluster Ferramentas de Big Data
    NoSQL: CouchDB, Bancos de dados MongoDB, Cassandra, Redis, ZooKeeper, HBase
    MapReduzir: Hadoop, Hive, Pig, Cascading, Oozie, Kafka, S4, MapR, Flume
    Armazenamento: S3, HDFS (sistema de arquivos distribuídos Hadoop)
    Servidores: Elástico, Heroku, Elástico, Google App Engine, EC2
    Tratamento R, Yahoo! Tubos, Mechanical Turk, BigSheets, Datameer

    Desafios em testes de Big Data

    • Automação

      Teste de automação para Big data requer alguém com conhecimento técnico. Além disso, as ferramentas automatizadas não estão equipadas para lidar com problemas inesperados que surgem durante os testes.

    • Virtualização

      É uma das fases integrais do teste. A latência da máquina virtual cria problemas de tempo em testes de desempenho de big data em tempo real. Além disso, gerenciar imagens em Big Data é um incômodo.

    • Grande conjunto de dados
      • Precisa verificar mais dados e fazer isso mais rápido
      • Necessidade de automatizar o esforço de teste
      • Precisa ser capaz de testar em diferentes plataformas

    Desafios de teste de desempenho

    • Conjunto diversificado de tecnologias: Cada subcomponente pertence a uma tecnologia diferente e requer testes isolados
    • Indisponibilidade de ferramentas específicas: Nenhuma ferramenta pode realizar o teste de ponta a ponta. Por exemplo, NoSQL pode não ser adequado para filas de mensagens
    • Teste de script: É necessário um alto grau de script para projetar cenários e casos de teste
    • Ambiente de teste: Precisa de um ambiente de teste especial devido ao grande tamanho dos dados
    • Solução de monitoramento: Existem soluções limitadas que podem monitorar todo o ambiente
    • Solução de diagnóstico: é necessário desenvolver uma solução personalizada para detalhar as áreas de gargalo de desempenho

    Resumo

    • À medida que a engenharia e a análise de dados avançam para um próximo nível, os testes de Big Data são inevitáveis.
    • O processamento de big data pode ser em lote, em tempo real ou interativo
    • Três estágios de teste de aplicativos de Big Data são validação de teste de dados, validação “MapReduce” e fase de validação de saída
    • ArchiO teste de arquitetura é a fase importante dos testes de Big Data, pois um sistema mal projetado pode levar a erros sem precedentes e à degradação do desempenho
    • O teste de desempenho para Big Data inclui a verificação da taxa de transferência de dados, processamento de dados e desempenho de subcomponentes
    • O teste de big data é muito diferente do teste de dados tradicional em termos de dados, infraestrutura e ferramentas de validação
    • Os desafios do Big Data Testing incluem virtualização, automação de testes e lidar com grandes conjuntos de dados. Os testes de desempenho de aplicações de Big Data também são um problema.