Cómo ejecutar una aplicación web con Apache Spark

Realmente no lo haces. Spark es una plataforma de análisis, no un marco web.

Sí, es cierto que puede vincular Spark Streaming a un puerto, no puede usar la lógica en Spark para “servir” páginas, que es el papel clásico de una aplicación web.

Por lo general, aquellos que usan Spark para análisis en tiempo real tienen una aplicación web separada que lo alimenta. En este caso, se podría crear una pila web clásica, como Tomcat y MySQL o LAMP, y tener una cierta acción en la interfaz de usuario que transfiere datos a una aplicación de Spark Streaming.

Esto difiere mucho de un marco web y servidor típico, como Grails en Tomcat, por ejemplo. Tomcat maneja el enlace a un puerto y subprocesos y Grails maneja cómo se pasan y devuelven los datos para solicitudes específicas.

Spark es muy poderoso, pero su trabajo es ejecutar análisis distribuidos de datos y anotarlos. Hay controladores que le permiten usar una serie de opciones de almacenamiento de datos. Lo que Spark no hará es permitirle devolver esos datos al cliente.

Si desea que su Spark Streaming tenga efectos en tiempo real en un front-end web, entonces es posible crear una arquitectura mediante la cual alimente los datos del cliente y luego Spark envíe los datos a un servicio en su aplicación o escriba a su aplicación web db en algún momento durante su procesamiento.

Spark puede ser un sistema de fondo para una aplicación web. No he visto a Spark actuando como receptor web frontend. Piense en una aplicación web o WebAPI en .NET, NodeJS o Scala. Esa aplicación web recibe una solicitud del usuario que se reenviará al clúster de Spark para su procesamiento, que puede buscar y compilar algunos terabytes de datos almacenados en HDFS. Una vez que se resumen los resultados, spark devolverá los resultados a la aplicación web que está esperando los resultados. Creo que entendiste el mensaje. Si desea acceder y resumir terabytes de datos HDFS, es posible que un servidor web no pueda manejarlos. Mejor el procesamiento debería ser entregado al grupo de chispas que se especializa y procesa grandes datos de manera eficiente. Ahora mantenga esta configuración; puede pensar en muchos tipos de aplicaciones, como un servidor de BI basado en Spark en el back-end.

Software de gestión de casos legales

Hace un par de años, trabajé en una aplicación web usando spark. No es el uso previsto de la chispa, pero funciona. El principio es que la aplicación web también es el controlador de chispa, que no termina de manera similar a un Spark-shell que no se cerraría.

Aquí hay un par de proyectos mínimos que hacen eso: aplicación web que usa spark
En ese momento trabajé con Java (estaba portando una aplicación web estándar usando MySQL para usar spark + hive), pero recomendaría usar scala.

Tenga en cuenta que su aplicación web debe implementarse en el mismo clúster que spark: será el controlador de chispa y se comunicará mucho con todos los trabajadores. Las principales dificultades son, primero, administrar las dependencias de chispa en su aplicación web, y segundo, que su aplicación web será un trabajo de chispa que no termina, lo que bloqueará los recursos de chispa que está configurado para usar.

Supongo que puede estar confundiendo este micro marco de Java para Apache Spark. Apache Spark es un marco de análisis / procesamiento de datos distribuido de propósito general y no tiene nada que ver con la Web.

More Interesting

¿Se puede construir una aplicación web en Python?

¿Qué tema teórico debería elegir entre estos dos 1. Sistema operativo avanzado y 2. Arquitectura de la aplicación web?

¿Qué algoritmos / herramientas de programación se utilizan para aplicaciones web basadas en análisis de texto como 'I Write Like' o '750Words'?

Cómo construir una API privada para mi aplicación

¿Cuáles son las cosas que debo considerar para desarrollar aplicaciones web de ALTA VELOCIDAD (en cualquier idioma)?

Siendo un novato, ¿cómo comienzas a ser un ingeniero de desarrollo empresarial exitoso?

¿Qué idioma es el más solicitado y necesitado en el desarrollo web en Dubai?

¿Cuál es la diferencia entre aplicaciones personalizadas y aplicaciones de consola en la plataforma Salesforce?

¿Usaría Slim Framework para una aplicación PHP comercial, en lugar de una opción más tradicional como Laravel o Symfony?

¿Cómo puede Java ser un back-end para una aplicación web?

¿Necesito aprender HTML CSS y JavaScript para crear una aplicación web?

¿Cuáles son los ejemplos de plataformas web que son curadas o enfocadas por el administrador del grupo, en lugar de dirigirse a usuarios individuales (los administradores agregan los usuarios, en lugar de los usuarios individuales que se registran)?

¿Cuáles son los mejores lenguajes de programación en 2015 para construir una aplicación web full stack?

¿Cuáles son algunas herramientas, consejos, mejores prácticas y consejos para alguien que es nuevo en proyectos de aplicaciones web?

¿Cuál es el efecto de la limitación del ancho de banda en las pruebas de aplicaciones web (software)?