¿Cómo es posible usar Hadoop o Apache Spark en mi aplicación web?

Hadoop es un sistema de procesamiento por lotes que puede procesar grandes cantidades de datos en un entorno de clúster. Eso significa que los datos se pueden procesar rápidamente y la información procesada está disponible en el tiempo requerido. Hadoop nunca se puede usar directamente con una aplicación web. Todo el propósito es completamente diferente. Piense en viajar grandes distancias, necesita una aerolínea a reacción para ir de un lugar a otro, pero los aviones nunca se pueden usar para ir a la oficina en la ciudad donde vive. Del mismo modo, Hadoop puede procesar grandes cantidades de datos y extraer información que la aplicación web no puede utilizar directamente. Piense en las aplicaciones de inteligencia empresarial donde los datos se acumulan y procesan en lotes.

Spark es una historia diferente. El propósito es el mismo que Hadoop, que es procesar grandes datos en un entorno de clúster, pero como spark usa memoria, el procesamiento es de 10 a 100 veces más rápido que Hadoop. Hadoop siempre usa el disco para almacenar resultados intermedios y generalmente un trabajo consiste en múltiples etapas con múltiples resultados intermedios, ralentiza el trabajo de hadoop en comparación con Spark. Spark se puede usar con la aplicación web usando un servidor de trabajo (Livy, un servicio REST de código abierto para Apache Spark) pero supongo que dicho sistema será costoso

Software de gestión de casos legales

Es bastante fácil, francamente. Puede tomar una solicitud web, por ejemplo, “por favor, proporcione el cálculo agregado sobre mis registros de febrero para visitantes únicos por país” y traducirlo en un trabajo de chispa.

Luego crea un contexto de chispa y lo envía al clúster. Cree una identificación única para identificar el trabajo y devuelva esa identificación al navegador / cliente.

Una vez que el trabajo esté terminado, notifique al cliente que el resultado del cálculo que solicitó está disponible y bríndele un flujo de información, una referencia de archivo, lo que desee.

Fácil. Para Hadoop, se aplican los patrones equivalentes.

Piense en Hadoop y Spark como herramientas ETL / Analytics. En una aplicación web, uno ciertamente puede escribir análisis en tiempo real para datos controlados por eventos … bueno, Hadoop y Spark son solo eso servicios externos de la aplicación.

Un ejemplo sería una situación en la que tiene una aplicación web clásica de pila LAMP. Paralelo a eso, es posible que tenga un clúster Spark on YARN. Los usuarios visitan la página web e ingresan datos. La lógica de fondo pasa esos datos a un intermediario de colas como Kafka o directamente a un proceso de Spark Streaming que escucha en un puerto. Luego, Spark transforma los datos, escribiendo productos de datos en HDFS o de regreso a la base de datos de la aplicación web.

En este ejemplo, los datos podrían ser utilizados rápidamente por la aplicación web, dependiendo del tamaño de la transformación de datos que tenga lugar. Un buen método para esto podría ser un servicio de sondeo en la lógica de back-end que busca las claves MySQL correspondientes en HDFS (posiblemente con fachadas por HBase o Cassandra) o en las tablas de MySQL del producto. Este servicio de encuestas puede devolver el resultado de la transformación de datos a través de websockets a un escucha del lado del cliente para que el usuario interactúe. Este es un método muy elegante y de uso frecuente para entregar resultados analíticos en tiempo real a una aplicación web.