Tutorial de teste de big data: o que é estratégia, como testar o Hadoop

Índice:

Anonim

Teste de Big Data

O Big Data Testing é 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 do teste 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. O teste desses conjuntos de dados envolve várias ferramentas, técnicas e estruturas para processar. Big data está relacionado à criação, armazenamento, recuperação e análise de dados que é notável em termos de volume, variedade e velocidade. Você pode aprender mais sobre Big Data, Hadoop e MapReduce aqui

Neste tutorial de teste de Big Data, você aprenderá

  • O que é estratégia de teste de Big Data?
  • Como testar aplicativos Hadoop
  • Teste de Arquitetura
  • Teste de performance
  • Abordagem de teste de desempenho
  • Parâmetros para teste de desempenho
  • Necessidades do ambiente de teste
  • Teste de Big Data vs. Teste de banco de dados tradicional
  • Ferramentas usadas em cenários de Big Data
  • Desafios no teste de Big Data

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

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

Na estratégia de teste de Big Data, os engenheiros de QA verificam o processamento bem-sucedido de terabytes de dados usando cluster de commodity 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

Junto com isso, a qualidade dos dados também é um fator importante nos testes do Hadoop. Antes de testar o aplicativo, é necessário verificar a qualidade dos dados e deve ser considerado 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 de dados, etc. A seguir, neste tutorial de teste do Hadoop, aprenderemos como testar os aplicativos do Hadoop.

Como testar aplicativos Hadoop

A figura a seguir oferece uma visão geral de alto nível das fases em Teste de aplicativos de Big Data

Os testes de Big Data ou Hadoop podem ser amplamente divididos 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 a validação do processo.

  • Dados de várias fontes, como RDBMS, weblogs, mídia social, 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 HDFS correto

Ferramentas como Talend , Datameer, podem ser usadas para validação de teste de dados

Etapa 2: Validação de "MapReduce"

A segunda etapa é uma validação de "MapReduce". Nesta fase, 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
  • As 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 estágio final ou terceiro do teste do Hadoop é o processo de validação de saída. Os arquivos de dados de saída são gerados e estão prontos para serem movidos para um EDW (Enterprise Data Warehouse) ou qualquer outro sistema com base no requisito.

As atividades na terceira fase incluem

  • Para verificar se as regras de transformação foram aplicadas corretamente
  • Para verificar a integridade dos dados e 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

Teste de Arquitetura

O Hadoop processa grandes volumes de dados e consome muitos recursos. Portanto, o teste de arquitetura é crucial para garantir o sucesso do seu projeto de Big Data. Um sistema projetado incorretamente ou incorreto pode levar à degradação do desempenho e o sistema pode não atender aos requisitos. Pelo menos, os serviços de teste de desempenho e failover devem ser executados em um ambiente Hadoop.

O teste de desempenho inclui o teste de tempo de conclusão de trabalho, utilização de memória, rendimento 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 performance

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 várias fontes de dados. O teste envolve a identificação de uma mensagem diferente que a fila pode processar em um determinado intervalo 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 banco de dados Mongo e Cassandra.
  • Processamento de dados : envolve a verificação da velocidade com que as consultas ou tarefas de redução de mapa são executadas. 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 HDFS subjacente
  • 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 de MapReduce, desempenho de consulta, pesquisa, etc.

Abordagem de teste de desempenho

O teste de desempenho para aplicativos de big data envolve o teste de grandes volumes de dados estruturados e não estruturados e requer uma abordagem de teste específica para testar esses dados massivos.

O teste de desempenho é executado nesta ordem

  1. O processo começa com a configuração do cluster de Big Data, que deve ser testado quanto ao desempenho
  2. Identificar e projetar cargas de trabalho correspondentes
  3. Prepare clientes individuais (são criados scripts personalizados)
  4. Execute o teste e analise o resultado (se os objetivos não forem atingidos, ajuste o componente e execute novamente)
  5. Configuração Ótima

Parâmetros para teste 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 nós diferentes
  • Registros de confirmação: quão grande o registro de confirmação pode crescer
  • Simultaneidade: quantos threads podem realizar a operação 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.
  • 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 teste de software de Big Data, o ambiente de teste deve abranger

  • Deve ter espaço suficiente para armazenamento 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 alto desempenho para testar o desempenho do Big Data

Teste de Big Data vs. Teste de banco de dados tradicional

Propriedades

Teste de banco de dados tradicional

Teste de Big Data

Dados

  • Trabalho de testador com dados estruturados
  • O testador trabalha 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 de P&D focados

Estratégia de Teste

  • O testador tem a opção de estratégia de "Amostragem" fazendo manualmente ou estratégia de "Verificação Exaustiva" pela ferramenta de automação
  • A estratégia de "amostragem" em Big data é um desafio

A 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 macros baseadas em Excel ou ferramentas de automação baseadas em IU

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, podem surgir novos recursos.

Ferramentas usadas em cenários de Big Data

Cluster de Big Data

Ferramentas de Big Data

NoSQL:

  • CouchDB, bancos de dados MongoDB, Cassandra, Redis, ZooKeeper, HBase

MapReduce:

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

Armazenar:

  • S3, HDFS (Hadoop Distributed File System)

Servidores:

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

Em processamento

  • R, Yahoo! Pipes, Mechanical Turk, BigSheets, Datameer

Desafios no teste de Big Data

  • Automação

    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 o teste

  • Virtualização

    É uma das fases integrantes 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, o gerenciamento de imagens em Big Data é um incômodo.

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

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 servir para filas de mensagens
  • Script de teste : um alto grau de script é necessário para projetar cenários de teste e casos de teste
  • Ambiente de teste : ele 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 : uma solução personalizada é necessária para desenvolver para detalhar as áreas de gargalo de desempenho

Resumo

  • Conforme a engenharia de dados e a análise de dados avançam para um próximo nível, o teste de Big Data é inevitável.
  • O processamento de big data pode ser em lote, em tempo real ou interativo
  • 3 estágios de teste de aplicativos de Big Data são
    • Validação de teste de dados
    • Validação de "MapReduce"
    • Fase de validação de saída
  • O Teste de Arquitetura é a fase importante do teste 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 verificar
    • Taxa de transferência de dados
    • Processamento de dados
    • Desempenho do subcomponente
  • 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 teste e lidar com grandes conjuntos de dados. O teste de desempenho de aplicativos de Big Data também é um problema.