web-dev-qa-db-fra.com

Déclencher spark avec REST

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.

24
chaosguru

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

7
David

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

27
Artur Mkrtchyan

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.

5
Josemy

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.

1
Alex Fedulov