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
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
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.
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.
O teste de desempenho é executado nesta ordem
- O processo começa com a configuração do cluster de Big data que será testado quanto ao desempenho
- Identifique e projete cargas de trabalho correspondentes
- Preparar clientes individuais (scripts personalizados são criados)
- Execute o teste e analise o resultado (se os objetivos não forem alcançados, ajuste o componente e execute novamente)
- 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.