J'ai essayé récemment Spark Apache . Ma question est plus spécifique pour déclencher des emplois spark. Ici j'avais posté une question sur la compréhension des emplois spark. Après avoir été sali par les emplois) Je suis passé à mon exigence.
J'ai un point de terminaison REST où j'expose l'API pour déclencher des jobs, j'ai utilisé Spring4.0 pour l'implémentation de Rest. par programme, ce qui signifie que le point final est déclenché, avec des paramètres donnés, je déclencherais le travail. J'ai maintenant peu d'options de conception.
Semblable au travail écrit ci-dessous, j'ai besoin de maintenir plusieurs travaux appelés par une classe abstraite peut être 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
l'extension au-dessus du point a plusieurs versions de tâches gérées par le service.
Sinon, utilisez un Spark Job Server pour ce faire.
Tout d'abord, je voudrais savoir quelle est la meilleure solution dans ce cas, en termes d'exécution et de mise à l'échelle.
Remarque : J'utilise un cluster autonome de spark. aide aimablement.
Utilisez simplement le Spark JobServer https://github.com/spark-jobserver/spark-jobserver
Il y a beaucoup de choses à considérer lors de la création d'un service, et le Spark JobServer en a déjà la plupart couvertes. Si vous trouvez des choses qui ne sont pas assez bonnes, cela devrait être facile à faire). une demande et ajouter du code à leur système plutôt que de le réinventer à partir de zéro
Il s'avère que Spark a une API cachée REST pour soumettre un travail, vérifier le statut et tuer).
Consultez l'exemple complet ici: http://arturmkrtchyan.com/Apache-spark-hidden-rest-api
Livy est une interface open source REST pour interagir avec Apache Spark de n'importe où. Il prend en charge l'exécution d'extraits de code ou de programmes dans un Spark contexte qui s'exécute localement ou dans Apache Hadoop YARN.
Voici un bon client qui pourrait vous être utile: https://github.com/ywilkof/spark-jobs-rest-client
Edit: cette réponse a été donnée en 2015. Il y a des options comme Livy disponibles maintenant.