Hi,

Why SPARK 1.5? Let me guess, are you using JAVA as well?

The world has moved on mate.


Regards,
Gourav

On Fri, Sep 8, 2017 at 8:36 AM, PICARD Damien <damien.picard-...@socgen.com>
wrote:

> Hi !
>
>
>
> I’m facing a Classloader problem using Spark 1.5.1
>
>
>
> I use javax.validation and hibernate validation annotations on some of my
> beans :
>
>
>
>   @NotBlank
>
>   @Valid
>
>   *private* String attribute1 ;
>
>
>
>   @Valid
>
>   *private* String attribute2 ;
>
>
>
> When Spark tries to unmarshall these beans (after a remote RDD), I get the 
> ClassNotFoundException
> :
>
> 17/09/07 09:19:25 INFO storage.BlockManager: Found block rdd_8_1 remotely
>
> 17/09/07 09:19:25 ERROR executor.Executor: Exception in task 3.0 in stage
> 2.0 (TID 6)
>
> java.lang.ClassNotFoundException: org.hibernate.validator.
> constraints.NotBlank
>
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
>
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>
>         at java.lang.Class.forName0(Native Method)
>
>         at java.lang.Class.forName(Class.java:348)
>
>         at java.io.ObjectInputStream.resolveProxyClass(
> ObjectInputStream.java:700)
>
>         at java.io.ObjectInputStream.readProxyDesc(
> ObjectInputStream.java:1566)
>
>         at java.io.ObjectInputStream.readClassDesc(
> ObjectInputStream.java:1518)
>
>         at java.io.ObjectInputStream.readOrdinaryObject(
> ObjectInputStream.java:1781)
>
>    …
>
>
>
> Indeed, it means that the annotation class is not found, because it is not
> in the classpath. Why ? I don’t know, because I make a uber JAR that
> contains this class. I suppose that at the time the job tries to unmarshall
> the RDD, the uber jar is not loaded.
>
>
>
> So, I try to add the hibernate JAR to the class loader manually, using
> this spark-submit command :
>
>
>
> spark-submit --queue default \
>
> --class com.my.Launcher \
>
> --deploy-mode cluster \
>
> --master yarn-cluster \
>
> --driver-java-options "-Dfile.encoding=UTF-8" \
>
> --jars /home/user/hibernate-validator-5.2.2.Final.jar \
>
> --driver-class-path /home/user/hibernate-validator-5.2.2.Final.jar \
>
> --conf "spark.executor.extraClassPath=/home/user/
> hibernate-validator-5.2.2.Final.jar" \
>
> /home/user/uberjar-job.jar
>
>
>
> Without effects. So, is there a way to add this class to the classloader ?
>
>
>
> Thank you in advance.
>
>
>
> Damien
>
> =========================================================
>
> Ce message et toutes les pieces jointes (ci-apres le "message")
> sont confidentiels et susceptibles de contenir des informations
> couvertes par le secret professionnel. Ce message est etabli
> a l'intention exclusive de ses destinataires. Toute utilisation
> ou diffusion non autorisee interdite.
> Tout message electronique est susceptible d'alteration. La SOCIETE GENERALE
> et ses filiales declinent toute responsabilite au titre de ce message
> s'il a ete altere, deforme falsifie.
>
> =========================================================
>
> This message and any attachments (the "message") are confidential,
> intended solely for the addresses, and may contain legally privileged
> information. Any unauthorized use or dissemination is prohibited.
> E-mails are susceptible to alteration. Neither SOCIETE GENERALE nor any
> of its subsidiaries or affiliates shall be liable for the message
> if altered, changed or falsified.
>
> =========================================================
>

Reply via email to