Creación de una arquitectura de Kafka y Spark

Completado

Para usar Kafka y Spark de forma conjunta en Azure HDInsight, debe colocarlos en la misma red virtual o emparejar las redes virtuales para que los clústeres funcionen con la resolución de nombres DNS.

What is a Kafka and Spark architecture

Para crear clústeres en la misma red virtual, el procedimiento es el siguiente:

  1. Crear un grupo de recursos
  2. Adición de una red virtual al grupo de recursos
  3. Agregue un clúster de Kafka y otro de Spark a la misma red virtual, o empareje las redes virtuales en las que funcionan estos servicios con la resolución de nombres DNS.

El método recomendado para conectar el clúster de Kafka y Spark de HDInsight es el conector de Spark-Kafka nativo, que permite que el clúster de Spark acceda a particiones individuales de datos dentro del clúster de Kafka, lo que aumenta el paralelismo en el trabajo de procesamiento en tiempo real y proporciona un rendimiento muy alto.

Cuando los dos clústeres están en la misma red virtual, también puede usar FQDN de agente de Kafka en el código de streaming de Spark y puede crear reglas de grupo de seguridad de red en la red virtual para la seguridad empresarial.

Arquitectura de la solución

Los patrones de análisis de streaming en tiempo real en Azure suelen usar la siguiente arquitectura de la solución.

  1. Ingesta: los datos estructurados o no estructurados se ingieren en un clúster de Kafka en Azure HDInsight.
  2. Preparación y entrenamiento: los datos se preparan y entrenan con Spark en HDInsight.
  3. Modelo y servicio: los datos se colocan en un almacenamiento de datos como Azure Synapse o HDInsight Interactive Query.
  4. Inteligencia: los datos se sirven a un panel de análisis como Power BI o Tableau.
  5. Almacenamiento: los datos se colocan en una solución de almacenamiento en reposo, como Azure Storage, para servirlos después.

A Kafka and Spark solution architecture

Arquitectura del escenario de prueba

En la unidad siguiente, comenzará a crear la arquitectura de la solución para la aplicación de ejemplo. En este ejemplo se usa un archivo de plantilla de Azure Resource Manager para crear el grupo de recursos, la red virtual, el clúster de Spark y el de Kafka.

Una vez que se han implementado los clústeres, puede usar ssh en uno de los agentes de Kafka y copiar el archivo de productor de Python en el nodo principal. Ese archivo de productor proporciona precios de acciones artificiales cada 10 segundos, además de escribir el número de la partición y el desplazamiento del mensaje en la consola.

Cuando el productor esté en ejecución, podrá cargar el cuaderno de Jupyter Notebook en el clúster de Spark. En el cuaderno, conectará los clústeres de Spark y Kafka, y ejecutará algunas consultas de ejemplo en los datos, incluida la búsqueda de los valores máximo y mínimo de una acción durante un periodo de eventos.

A Kafka and Spark example solution architecture