Activación de trabajos de chispa con REST
apache-spark spring-batch (4)
Últimamente he probado la chispa apache . Mi pregunta es más específica para activar trabajos de chispa. Here había publicado una pregunta sobre la comprensión de los trabajos de chispa. Después de ensuciarme en trabajos, pasé a mi requerimiento.
Tengo un punto final REST donde expongo la API para desencadenar trabajos. He utilizado Spring4.0 para la implementación de Rest. Ahora, yendo hacia adelante, pensé en implementar Jobs as Service en Spring, donde enviaría Job programáticamente, lo que significa que cuando se desencadena el punto final, con los parámetros dados activaría el trabajo. Ahora tengo pocas opciones de diseño.
Similar al trabajo escrito a continuación, necesito mantener varios trabajos llamados por una clase abstracta que puede ser
JobScheduler
./*Can this Code be abstracted from the application and written as as a seperate job. Because my understanding is that the Application code itself has to have the addJars embedded which internally sparkContext takes care.*/ SparkConf sparkConf = new SparkConf().setAppName("MyApp").setJars( new String[] { "/path/to/jar/submit/cluster" }) .setMaster("/url/of/master/node"); sparkConf.setSparkHome("/path/to/spark/"); sparkConf.set("spark.scheduler.mode", "FAIR"); JavaSparkContext sc = new JavaSparkContext(sparkConf); sc.setLocalProperty("spark.scheduler.pool", "test"); // Application with Algorithm , transformations
extendiéndose por encima del punto tienen múltiples versiones de trabajos manejados por el servicio.
O bien, utilice un servidor de tareas Spark para hacer esto.
En primer lugar, me gustaría saber cuál es la mejor solución en este caso, en cuanto a ejecución y también a escala.
Nota : Estoy usando un clúster independiente de chispa. amablemente ayuda.
Aquí hay un buen cliente que puede ser útil: https://github.com/ywilkof/spark-jobs-rest-client
Resulta que Spark tiene una API REST oculta para enviar un trabajo, verificar el estado y matar.
Mira el ejemplo completo aquí: http://arturmkrtchyan.com/apache-spark-hidden-rest-api
Solo use Spark JobServer https://github.com/spark-jobserver/spark-jobserver
Hay muchas cosas que considerar al hacer un servicio, y Spark JobServer ya tiene la mayoría de ellas cubiertas. Si encuentra cosas que no son lo suficientemente buenas, debería ser fácil hacer una solicitud y agregar código a su sistema en lugar de reinventarlo desde cero.
Livy es una interfaz REST de código abierto para interactuar con Apache Spark desde cualquier lugar. Admite la ejecución de fragmentos de código o programas en un contexto Spark que se ejecuta localmente o en Apache Hadoop YARN.