Tutorial de pruebas de Big Data: qué es, estrategia, cómo probar Hadoop

Tabla de contenido

Pruebas de Big Data

Big Data Testing es un proceso de prueba de una aplicación de big data para garantizar que todas las funcionalidades de una aplicación de big data funcionen como se espera. El objetivo de las pruebas de big data es asegurarse de que el sistema de big data funcione sin problemas y sin errores mientras se mantiene el rendimiento y la seguridad.

Big data es una colección de grandes conjuntos de datos que no se pueden procesar mediante técnicas informáticas tradicionales. La prueba de estos conjuntos de datos implica varias herramientas, técnicas y marcos para procesar. Big data se relaciona con la creación, el almacenamiento, la recuperación y el análisis de datos que son notables en términos de volumen, variedad y velocidad. Puede obtener más información sobre Big Data, Hadoop y MapReduce aquí

En este tutorial de Big Data Testing, aprenderá:

  • ¿Qué es la estrategia de prueba de Big Data?
  • Cómo probar aplicaciones de Hadoop
  • Pruebas de arquitectura
  • Pruebas de rendimiento
  • Enfoque de prueba de rendimiento
  • Parámetros para pruebas de rendimiento
  • Necesidades del entorno de prueba
  • Pruebas de Big Data vs. Prueba de base de datos tradicional
  • Herramientas utilizadas en escenarios de Big Data
  • Desafíos en las pruebas de Big Data

¿Qué es la estrategia de prueba de Big Data?

Probar la aplicación Big Data es más una verificación de su procesamiento de datos en lugar de probar las características individuales del producto de software. Cuando se trata de pruebas de Big Data, las pruebas funcionales y de rendimiento son las claves.

En la estrategia de prueba de Big Data, los ingenieros de control de calidad verifican el procesamiento exitoso de terabytes de datos utilizando un clúster de productos básicos y otros componentes de apoyo. Requiere un alto nivel de habilidades de prueba ya que el procesamiento es muy rápido. El procesamiento puede ser de tres tipos

Junto con esto, la calidad de los datos también es un factor importante en las pruebas de Hadoop. Antes de probar la aplicación, es necesario verificar la calidad de los datos y debe considerarse como parte de la prueba de la base de datos. Implica verificar varias características como conformidad, precisión, duplicación, consistencia, validez, integridad de los datos, etc. A continuación, en este tutorial de pruebas de Hadoop, aprenderemos cómo probar aplicaciones de Hadoop.

Cómo probar aplicaciones de Hadoop

La siguiente figura ofrece una descripción general de alto nivel de las fases en las pruebas de aplicaciones de Big Data

Big Data Testing o Hadoop Testing se pueden dividir en tres pasos

Paso 1: Validación de la puesta en escena de los datos

El primer paso en este tutorial de pruebas de big data se conoce como etapa previa a Hadoop que implica la validación del proceso.

  • Los datos de varias fuentes como RDBMS, weblogs, redes sociales, etc. deben validarse para asegurarse de que se ingresen datos correctos al sistema.
  • Comparar los datos de origen con los datos insertados en el sistema Hadoop para asegurarse de que coincidan
  • Verifique que se extraigan y carguen los datos correctos en la ubicación HDFS correcta

Se pueden utilizar herramientas como Talend , Datameer, para la validación de la puesta en escena de datos

Paso 2: Validación de "MapReduce"

El segundo paso es una validación de "MapReduce". En esta etapa, el probador de Big Data verifica la validación de la lógica empresarial en cada nodo y luego los valida después de ejecutarlos en varios nodos, asegurando que el

  • El proceso Map Reduce funciona correctamente
  • Las reglas de agregación o segregación de datos se implementan en los datos
  • Se generan pares clave-valor
  • Validar los datos después del proceso Map-Reduce

Paso 3: Fase de validación de salida

La etapa final o tercera de las pruebas de Hadoop es el proceso de validación de salida. Los archivos de datos de salida se generan y están listos para ser movidos a un EDW (Enterprise Data Warehouse) o cualquier otro sistema según el requisito.

Las actividades en la tercera etapa incluyen

  • Para comprobar que las reglas de transformación se aplican correctamente
  • Para verificar la integridad de los datos y la carga exitosa de datos en el sistema de destino
  • Para comprobar que no hay daños en los datos comparando los datos de destino con los datos del sistema de archivos HDFS

Pruebas de arquitectura

Hadoop procesa grandes volúmenes de datos y consume muchos recursos. Por lo tanto, las pruebas de arquitectura son cruciales para garantizar el éxito de su proyecto de Big Data. Un sistema con un diseño deficiente o inadecuado puede provocar una degradación del rendimiento y el sistema podría no cumplir con el requisito. Al menos, los servicios de prueba de rendimiento y conmutación por error deben realizarse en un entorno Hadoop.

Las pruebas de rendimiento incluyen pruebas del tiempo de finalización del trabajo, la utilización de la memoria, el rendimiento de los datos y métricas similares del sistema. Si bien el motivo del servicio de prueba de conmutación por error es verificar que el procesamiento de datos se realice sin problemas en caso de falla de los nodos de datos

Pruebas de rendimiento

Las pruebas de rendimiento para Big Data incluyen dos acciones principales

  • Ingestión de datos y todo : en esta etapa, el probador de Big Data verifica cómo el sistema rápido puede consumir datos de varias fuentes de datos. La prueba implica identificar un mensaje diferente que la cola puede procesar en un período de tiempo determinado. También incluye la rapidez con la que se pueden insertar datos en el almacén de datos subyacente, por ejemplo, la tasa de inserción en una base de datos de Mongo y Cassandra.
  • Procesamiento de datos : Implica verificar la velocidad con la que se ejecutan las consultas o los trabajos de reducción de mapas. También incluye probar el procesamiento de datos de forma aislada cuando el almacén de datos subyacente se llena dentro de los conjuntos de datos. Por ejemplo, ejecutar trabajos de Map Reduce en el HDFS subyacente
  • Rendimiento de los subcomponentes: estos sistemas están formados por varios componentes y es esencial probar cada uno de estos componentes de forma aislada. Por ejemplo, qué tan rápido se indexa y consume el mensaje, trabajos de MapReduce, rendimiento de consultas, búsqueda, etc.

Enfoque de prueba de rendimiento

Las pruebas de rendimiento para aplicaciones de big data implican probar grandes volúmenes de datos estructurados y no estructurados, y requiere un enfoque de prueba específico para probar datos tan masivos.

Las pruebas de rendimiento se ejecutan en este orden

  1. El proceso comienza con la configuración del clúster de Big Data cuyo rendimiento se probará
  2. Identificar y diseñar las cargas de trabajo correspondientes.
  3. Preparar clientes individuales (se crean scripts personalizados)
  4. Ejecute la prueba y analice el resultado (si no se cumplen los objetivos, ajuste el componente y vuelva a ejecutar)
  5. Configuración óptima

Parámetros para pruebas de rendimiento

Varios parámetros que deben verificarse para las pruebas de rendimiento son

  • Almacenamiento de datos: cómo se almacenan los datos en diferentes nodos
  • Registros de confirmación: qué tan grande se permite que crezca el registro de confirmación
  • Simultaneidad: cuántos subprocesos pueden realizar operaciones de escritura y lectura
  • Almacenamiento en caché: ajuste la configuración de caché "caché de fila" y "caché de claves".
  • Tiempos de espera: valores para el tiempo de espera de la conexión, el tiempo de espera de la consulta, etc.
  • Parámetros de JVM: tamaño de pila, algoritmos de recopilación de GC, etc.
  • El mapa reduce el rendimiento: ordena, fusiona, etc.
  • Cola de mensajes: tasa de mensajes, tamaño, etc.

Necesidades del entorno de prueba

El entorno de prueba debe depender del tipo de aplicación que esté probando. Para las pruebas de software de Big Data, el entorno de prueba debe abarcar

  • Debe tener suficiente espacio para almacenar y procesar una gran cantidad de datos.
  • Debe tener un clúster con nodos y datos distribuidos.
  • Debe tener un uso mínimo de CPU y memoria para mantener un alto rendimiento para probar el rendimiento de Big Data

Pruebas de Big Data vs. Prueba de base de datos tradicional

Propiedades

Prueba de base de datos tradicional

Pruebas de big data

Datos

  • Tester trabaja con datos estructurados
  • Tester trabaja con datos estructurados y no estructurados

Enfoque de prueba

  • El enfoque de prueba está bien definido y probado en el tiempo
  • El enfoque de prueba requiere esfuerzos enfocados en I + D

Estrategia de prueba

  • El probador tiene la opción de realizar una estrategia de "muestreo" manualmente o una estrategia de "verificación exhaustiva" mediante la herramienta de automatización
  • La estrategia de "muestreo" en Big Data es un desafío

Infraestructura

  • No requiere un entorno de prueba especial ya que el tamaño del archivo es limitado
  • Requiere un entorno de prueba especial debido al gran tamaño de datos y archivos (HDFS)

Herramientas de validación

Tester utiliza macros basadas en Excel o herramientas de automatización basadas en UI

Sin herramientas definidas, la gama es amplia, desde herramientas de programación como MapReduce hasta HIVEQL

Herramientas de prueba

Las herramientas de prueba se pueden utilizar con conocimientos básicos de funcionamiento y menos formación.

Requiere un conjunto específico de habilidades y capacitación para operar una herramienta de prueba. Además, las herramientas están en su etapa incipiente y, con el tiempo, es posible que aparezcan nuevas funciones.

Herramientas utilizadas en escenarios de Big Data

Clúster de Big Data

Herramientas de Big Data

NoSQL:

  • CouchDB, bases de datos MongoDB, Cassandra, Redis, ZooKeeper, HBase

Mapa reducido:

  • Hadoop, Colmena, Cerdo, Cascada, Oozie, Kafka, S4, MapR, Flume

Almacenamiento:

  • S3, HDFS (sistema de archivos distribuido Hadoop)

Servidores:

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

Procesando

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

Desafíos en las pruebas de Big Data

  • Automatización

    Las pruebas de automatización para Big Data requieren de alguien con experiencia técnica. Además, las herramientas automatizadas no están equipadas para manejar problemas inesperados que surgen durante las pruebas.

  • Virtualización

    Es una de las fases integrales de la prueba. La latencia de la máquina virtual crea problemas de sincronización en las pruebas de rendimiento de big data en tiempo real. Además, la gestión de imágenes en Big Data es una molestia.

  • Gran conjunto de datos
    • Necesita verificar más datos y debe hacerlo más rápido
    • Necesidad de automatizar el esfuerzo de prueba
    • Necesita poder probar en diferentes plataformas

Desafíos de las pruebas de rendimiento

  • Conjunto diverso de tecnologías : cada subcomponente pertenece a una tecnología diferente y requiere pruebas de forma aislada
  • Falta de disponibilidad de herramientas específicas : ninguna herramienta por sí sola puede realizar las pruebas de un extremo a otro. Por ejemplo, Es posible que NoSQL no se ajuste a las colas de mensajes
  • Scripting de prueba : se necesita un alto grado de scripting para diseñar escenarios de prueba y casos de prueba
  • Entorno de prueba : necesita un entorno de prueba especial debido al gran tamaño de los datos
  • Solución de monitoreo : existen soluciones limitadas que pueden monitorear todo el entorno
  • Solución de diagnóstico : se requiere el desarrollo de una solución personalizada para profundizar en las áreas de cuello de botella de rendimiento

Resumen

  • A medida que la ingeniería de datos y el análisis de datos avanzan a un nivel superior, las pruebas de Big Data son inevitables.
  • El procesamiento de big data puede ser por lotes, en tiempo real o interactivo
  • 3 etapas de prueba de aplicaciones de Big Data son
    • Validación de estadificación de datos
    • Validación de "MapReduce"
    • Fase de validación de salida
  • Las pruebas de arquitectura son la fase importante de las pruebas de Big Data, ya que un sistema mal diseñado puede provocar errores sin precedentes y una degradación del rendimiento.
  • Las pruebas de rendimiento para Big Data incluyen la verificación
    • Rendimiento de datos
    • Procesamiento de datos
    • Rendimiento de subcomponentes
  • Las pruebas de big data son muy diferentes de las pruebas de datos tradicionales en términos de herramientas de validación, infraestructura y datos
  • Los desafíos de Big Data Testing incluyen la virtualización, la automatización de pruebas y el manejo de grandes conjuntos de datos. Las pruebas de rendimiento de las aplicaciones de Big Data también son un problema.

Articulos interesantes...