¿Mejor práctica para lanzar aplicaciones Spark a través de la aplicación web?

Quiero exponer mis aplicaciones Spark a los usuarios con una aplicación web.

Básicamente, el usuario puede decidir qué acción quiere ejecutar e ingresar algunas variables, que deben pasar a la aplicación de chispa. Por ejemplo: el usuario ingresa algunos campos y luego hace clic en un botón que hace lo siguiente "ejecutarsparkApp1 con el parámetro min_x, max_x, min_y, max_y ".

La aplicación de chispa debe iniciarse con los parámetros dados por el usuario. Después de finalizar, la aplicación web puede ser necesaria para recuperar los resultados (de hdfs o mongodb) y mostrarlos al usuario. Durante el procesamiento, la aplicación web debe mostrar el estado de la aplicación Spark.

Mi pregunta:

¿Cómo puede la aplicación web lanzar la aplicación Spark? Es posible que pueda iniciarlo desde la línea de comando debajo del capó, pero podría haber una mejor manera de hacerlo.¿Cómo puede la aplicación web acceder al estado actual de la aplicación Spark? ¿Es el camino a seguir el estado de la API REST de Spark WebUI?

Estoy ejecutando un clúster de Spark 1.6.1 con YARN / Mesos (aún no estoy seguro) y MongoDB.