-->
  • Recent Articles

    Spark Error: ClassNotFoundException: com.sun.jersey.api.client.config.ClientConfig

    Spark Error: ClassNotFoundException: com.sun.jersey.api.client.config.ClientConfig

    spark2

    We have encountered this problem while submitting a spark job. 

    Error:

    20/05/14 17:46:34 WARN DomainSocketFactory: The short-circuit local reads feature cannot be used because libhadoop cannot be loaded.
    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig
            at org.apache.hadoop.yarn.client.api.TimelineClient.createTimelineClient(TimelineClient.java:55)
            at org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.createTimelineClient(YarnClientImpl.java:181)
            at org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.serviceInit(YarnClientImpl.java:168)
            at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
            at org.apache.spark.deploy.yarn.Client.submitApplication(Client.scala:161)
            at org.apache.spark.deploy.yarn.Client.run(Client.scala:1135)
            at org.apache.spark.deploy.yarn.YarnClusterApplication.start(Client.scala:1527)
            at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:845)
            at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161)
            at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184)
            at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
            at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920)
            at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929)
            at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
    Caused by: java.lang.ClassNotFoundException: com.sun.jersey.api.client.config.ClientConfig
            at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
            ... 14 more


    Why?

    The cause is unknown. Spark 2 has been upgraded to jersey 2, but it still requires jersey 1 jars to be available.

    Solution:

    Download jersey-bundle-1.17.1.jar and copy it to $SPARK_HOME/jars  or use "--jars" option while calling spark-submit:


    $ spark-submit --jars extra_jars/jersey-bundle-1.17.1.jar



    No comments