3

I've got an issues when i'm trying to use com.typesafe.play play-json 2.4.0 on spark. The follwing code make an exception on the spark server but it works perfectly on my pc.

val json = Json.parse(json_string)

the exeption :

java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonToken.id()I
    at play.api.libs.json.jackson.JsValueDeserializer.deserialize(JacksonJson.scala:122)
    at play.api.libs.json.jackson.JsValueDeserializer.deserialize(JacksonJson.scala:108)
    at play.api.libs.json.jackson.JsValueDeserializer.deserialize(JacksonJson.scala:103)
    at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:2860)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1569)
    at play.api.libs.json.jackson.JacksonJson$.parseJsValue(JacksonJson.scala:226)
    at play.api.libs.json.Json$.parse(Json.scala:21)
    at org.soprism.kafka.connector.TwitterToCassandraPostsParser$.ParseJson(TwitterToCassandraPostsParser.scala:74)
    at org.soprism.kafka.connector.TwitterToCassandraPostsParser$$anonfun$1$$anonfun$apply$1.apply(TwitterToCassandraPostsParser.scala:65)
    at org.soprism.kafka.connector.TwitterToCassandraPostsParser$$anonfun$1$$anonfun$apply$1.apply(TwitterToCassandraPostsParser.scala:65)
    at scala.collection.Iterator$class.foreach(Iterator.scala:727)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
    at org.apache.spark.rdd.RDD$$anonfun$foreach$1.apply(RDD.scala:798)
    at org.apache.spark.rdd.RDD$$anonfun$foreach$1.apply(RDD.scala:798)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1503)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1503)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:61)
    at org.apache.spark.scheduler.Task.run(Task.scala:64)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:203)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

I use a spark-submit command to execute it

It seems to be an incompatibily between two versions of jackson's library. How can I fix it ?

Thank you

2
  • Do you have jackson-core set up as a dependency? Commented Aug 21, 2015 at 14:10
  • Yes I have this one : "com.fasterxml.jackson.core" % "jackson-core" % "2.5.4" Commented Aug 21, 2015 at 14:13

2 Answers 2

1

Spark nodes will NOT check your dependencies. You need to build an uber-jar that includes all your dependencies and pass it to Spark in order to be distributed to the different node.

Sign up to request clarification or add additional context in comments.

1 Comment

I've put jackson on the jar but it does't work on spark. Spark takes always a old version of jackson. This old version is on hadoop i guess.
0

Oozie has a lot of outdated jackson libs in shared lib fodler:

[cloudera@quickstart oozie]$ sudo -u hdfs hadoop fs -ls -R /user/oozie/share | grep -i jackson-core
-rwxrwxrwx   1 oozie supergroup     191738 2015-11-18 03:00 /user/oozie/share/lib/hive/jackson-core-2.2.2.jar
-rw-r--r--   1 oozie supergroup     191738 2015-11-18 03:02 /user/oozie/share/lib/lib_20151118030154/hcatalog/jackson-core-2.2.2.jar
-rw-r--r--   1 oozie supergroup     227500 2015-11-18 03:02 /user/oozie/share/lib/lib_20151118030154/hcatalog/jackson-core-asl-1.8.8.jar
-rw-r--r--   1 oozie supergroup     191738 2015-11-18 03:02 /user/oozie/share/lib/lib_20151118030154/hive/jackson-core-2.2.2.jar
-rw-r--r--   1 oozie supergroup     227500 2015-11-18 03:02 /user/oozie/share/lib/lib_20151118030154/hive/jackson-core-asl-1.8.8.jar
-rw-r--r--   1 oozie supergroup     227500 2015-11-18 03:02 /user/oozie/share/lib/lib_20151118030154/hive2/jackson-core-asl-1.8.8.jar
-rw-r--r--   1 oozie supergroup     227500 2015-11-18 03:01 /user/oozie/share/lib/lib_20151118030154/pig/jackson-core-asl-1.8.8.jar
-rw-r--r--   1 oozie supergroup     192699 2015-11-18 03:02 /user/oozie/share/lib/lib_20151118030154/spark/jackson-core-2.2.3.jar
-rw-r--r--   1 oozie supergroup     227500 2015-11-18 03:02 /user/oozie/share/lib/lib_20151118030154/spark/jackson-core-asl-1.8.8.jar
-rw-r--r--   1 oozie supergroup     197986 2015-11-18 03:02 /user/oozie/share/lib/lib_20151118030154/sqoop/jackson-core-2.3.1.jar
-rwxrwxrwx   1 oozie supergroup     227500 2015-11-18 03:00 /user/oozie/share/lib/pig/jackson-core-asl-1.8.8.jar
-rwxrwxrwx   1 oozie supergroup     195678 2015-11-18 03:00 /user/oozie/share/lib/sqoop/jackson-core-2.3.1.jar
-rwxrwxrwx   1 oozie supergroup     224637 2015-11-18 03:00 /user/oozie/share/lib/sqoop/jackson-core-asl-1.8.8.jar
[cloudera@quickstart oozie]$ 

Use following props in section in workflow.xml:

<property>
    <name>oozie.launcher.mapreduce.task.classpath.user.precedence</name>
    <value>true</value>
</property>

Here's a bug in Oozie. Check out following links for details: https://issues.apache.org/jira/browse/OOZIE-2066
http://gbif.blogspot.com.by/2014/11/upgrading-our-cluster-from-cdh4-to-cdh5.html

Don't forget to add jackson in uber jar for Oozie lib.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.