IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Big Data Discussion :

Que penser d'un Spark mis en oeuvre avec Spring boot (via Spring microservices ?) ? Est-ce une bonne idée ?


Sujet :

Big Data

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    605
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 605
    Points : 670
    Points
    670
    Par défaut Que penser d'un Spark mis en oeuvre avec Spring boot (via Spring microservices ?) ? Est-ce une bonne idée ?
    Bonjour,

    Je suis appelé à faire un projet où Spark sera employé pour analyser environ 10 Go de données.
    Spark, je ne le connais pas pour le moment : je vais le découvrir à cette occasion.

    J'ai un acquis Java important, et un bon nombre de classes (d'objets métiers principalement, mais aussi des services de vérification de règles de gestion) sont écrits soit en POJO soit en @Service Spring. J'aimerais pouvoir continuer à les utiliser pour m'épargner un codage trop conséquent.

    Au début, j'ai pensé que je pouvais tout simplement adjoindre spring-core à des traitements Spark. Mais en parcourant le web, j'ai vu que ce n'était pas la bonne pratique.
    En revanche, j'ai vu plusieurs articles évoquant l'emploi de Spark au travers de Spring microservices, lui-même mis en oeuvre par Spring boot. Et cela m'a davantage plu.

    J'y vois pour atout que cela logera Spark comme un fournisseur de données ou de services parmi d'autres que l'application Spring boot possèdera, avec ni plus ni moins de valeur que ses autres composants. Mais je m'interroge : mon application sera alors entièrement en Java. Et beaucoup disent sur le web : "Spark, c'est Scala.". Là, ça ne serait plus le cas : ce serait du full Java.

    Quels sont les avantages et les inconvénients, selon vous, à ce que j'agisse ainsi ?

    Merci !

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    605
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 605
    Points : 670
    Points
    670
    Par défaut
    Je viens de l'expérimenter, et je suis impressionné de la facilité de mise en œuvre avec Spring-boot.
    spring-boot-starter-web, spring-boot-starter-actuator, org.apache.spark:spark-core_2.11 et org.apache.spark:park-sql_2.11, déclarées comme dépendances,
    un petit bean configurateur de facture très simple,
    un spring-boot:run, et voici le serveur Spark en attente de directives...
    La seule difficulté a été d'exclure des dépendances les loggers variés, déclarés ici et là, comme on doit le faire souvent en Java.

    Là on mesure vraiment le progrès énorme qu'apporte Spring-boot par rapport à Spring.
    Avec Spring tout court, lier et paramétrer tout ce qu'il fallait aurait pris une bonne semaine, à condition d'être très au clair sur ce qu'il convenait de faire.

    Spring-boot est un sacré bon médicament pour soigner Spring, je trouve.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Points : 182
    Points
    182
    Par défaut
    J'avais récemment utiliser spring-boot pour écrirer une application spring, et je suis d'accords, ca a amélioré considérablement le dev

    Mais je suis intéressé par un exemple concret sping-boot / spark 2

    J'ai développé une application sous docker spark2 avec zeppelin pour générer des statistiques, mais l'approche spring boot + microservice+spark2
    m'apparaît comme séduisante pour une évolution de mon applciation

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    605
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 605
    Points : 670
    Points
    670
    Par défaut
    J'ai poursuivi mes développements avec Spring-boot et Spark conjointement.
    Tant que le Spring-boot restait principalement du core et des @Service, tout allait bien.
    Mais est venu le temps où j'ai du employer une base Postgis et j'avais deux possibilités : spring-jdbc ou spring-data-jpa.

    Les deux fonctionnent. spring-jdbc est sûr, mais il réclame des efforts car il faut implémenter manuellement plus de choses.

    spring-data-jpa fonctionne également, et Spring-boot incorpore alors Hibernate. Mais attention : il y a deux écueils alors :

    1) Gare aux starters* ! L'un d'entre-eux instrumente votre application Spring-boot avec de la programmation orientée aspect (POA) et la POA c'est le mal. => un imbroglio interne a lieu qui fait refuser par Spark la présence d'un convertisseur d'exception ou d'un propagateur de transactions. Il faut retirer ces starters jusqu'à trouver celui qui coince tout le monde. S'aider avec mvn dependecy:tree.

    2) Vos entités ne doivent pas être Serializable. Sinon, elles se mettent à s'embarquer elles aussi dans des sérialisations non désirées et Spark râle encore. J'espère que je vais pouvoir résoudre cela au travers des modules de Java 10, qu'au moins ceux-là se montrent utiles à quelque-chose pour me convaincre qu'Oracle n'est pas seulement arrivé sur terre pour faire mériter leur Paradis aux gens ; j'ai déjà gagné des points béatification pour avoir vécu avec des systèmes et des logiciels IBM si longtemps : j'ai le droit à la paix !

    Parce que Spark, c'est quelque-chose, hein ! Jamais vu un truc aussi dominant. Dès qu'il est là, il faut faire ceci, cela, tout le monde doit se coucher pour être accepté. Y a même des gens qui vous disent qu'il faut utiliser Scala avec ! Vous savez le langage qui doit remplacer Java depuis dix ans, là... Des nèfles ! Ça ne se passera pas comme ça !


    * P.S. : Les starters, ça fait grossir, les afters ça fait divaguer.

Discussions similaires

  1. [Checkstyle] Que penser de cet outil ?
    Par moila dans le forum Qualimétrie
    Réponses: 5
    Dernier message: 09/08/2010, 12h11
  2. [IDE][2005 Express.NET] Que penser de la licence gratuite ?
    Par vandeyy dans le forum Visual Studio
    Réponses: 16
    Dernier message: 23/03/2006, 06h54
  3. Que penser de l'avenir de glut??
    Par xg dans le forum GLUT
    Réponses: 4
    Dernier message: 06/02/2004, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo