Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Spark
    • Labels:
      None

      Description

      Was trying to run hive-on-spark local mode (set spark.master=local), and found it is not working due to jackson-databind conflict with spark's version.

      16/03/17 13:55:43 [f2e832af-82fc-426b-b0b1-ad201210cef4 main]: INFO exec.SerializationUtilities: Serializing MapWork using kryo
      java.lang.NoSuchMethodError: com.fasterxml.jackson.module.scala.deser.BigDecimalDeserializer$.handledType()Ljava/lang/Class;
      	at com.fasterxml.jackson.module.scala.deser.NumberDeserializers$.<init>(ScalaNumberDeserializersModule.scala:49)
      	at com.fasterxml.jackson.module.scala.deser.NumberDeserializers$.<clinit>(ScalaNumberDeserializersModule.scala)
      	at com.fasterxml.jackson.module.scala.deser.ScalaNumberDeserializersModule$class.$init$(ScalaNumberDeserializersModule.scala:61)
      	at com.fasterxml.jackson.module.scala.DefaultScalaModule.<init>(DefaultScalaModule.scala:19)
      	at com.fasterxml.jackson.module.scala.DefaultScalaModule$.<init>(DefaultScalaModule.scala:35)
      	at com.fasterxml.jackson.module.scala.DefaultScalaModule$.<clinit>(DefaultScalaModule.scala)
      	at org.apache.spark.rdd.RDDOperationScope$.<init>(RDDOperationScope.scala:81)
      	at org.apache.spark.rdd.RDDOperationScope$.<clinit>(RDDOperationScope.scala)
      	at org.apache.spark.SparkContext.withScope(SparkContext.scala:714)
      	at org.apache.spark.SparkContext.hadoopRDD(SparkContext.scala:991)
      	at org.apache.spark.api.java.JavaSparkContext.hadoopRDD(JavaSparkContext.scala:419)
      	at org.apache.hadoop.hive.ql.exec.spark.SparkPlanGenerator.generateMapInput(SparkPlanGenerator.java:205)
      	at org.apache.hadoop.hive.ql.exec.spark.SparkPlanGenerator.generateParentTran(SparkPlanGenerator.java:145)
      	at org.apache.hadoop.hive.ql.exec.spark.SparkPlanGenerator.generate(SparkPlanGenerator.java:117)
      	at org.apache.hadoop.hive.ql.exec.spark.LocalHiveSparkClient.execute(LocalHiveSparkClient.java:130)
      	at org.apache.hadoop.hive.ql.exec.spark.session.SparkSessionImpl.submit(SparkSessionImpl.java:71)
      	at org.apache.hadoop.hive.ql.exec.spark.SparkTask.execute(SparkTask.java:94)
      	at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:172)
      	at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:101)
      	at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1838)
      	at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1579)
      	at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1353)
      	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1124)
      	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1112)
      	at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233)
      	at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184)
      	at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:400)
      	at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:779)
      	at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:718)
      	at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:645)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
      

      Seems conflicting version of this jackson-databind class is being brought in via calcite-avatica.jar.

        Activity

        Hide
        chutium Teng Qiu added a comment - - edited

        Hi, i run into the same issue, can not simply remove calcite-avatica jar... i replaced calcite-avatica jar with this one https://repo1.maven.org/maven2/org/apache/calcite/avatica/avatica/1.7.1/avatica-1.7.1.jar

        then it works, but not sure what is the difference between avatica jar and calcite-avatica jar... really very ugly hack here...

        Show
        chutium Teng Qiu added a comment - - edited Hi, i run into the same issue, can not simply remove calcite-avatica jar... i replaced calcite-avatica jar with this one https://repo1.maven.org/maven2/org/apache/calcite/avatica/avatica/1.7.1/avatica-1.7.1.jar then it works, but not sure what is the difference between avatica jar and calcite-avatica jar... really very ugly hack here...
        Hide
        hntd187 Stephen Carman added a comment -

        This is because calcite has a shaded 2.1.1 version of jackson-databind in it. You can probably remove that from the jar and leave the jackson-databind alone in the hive distro.

        Show
        hntd187 Stephen Carman added a comment - This is because calcite has a shaded 2.1.1 version of jackson-databind in it. You can probably remove that from the jar and leave the jackson-databind alone in the hive distro.
        Hide
        szehon Szehon Ho added a comment -

        Removing the jackson-databind and calcite-avatica from the hive distribution did the trick, but have to remove both for some strange reason.

        Show
        szehon Szehon Ho added a comment - Removing the jackson-databind and calcite-avatica from the hive distribution did the trick, but have to remove both for some strange reason.

          People

          • Assignee:
            Unassigned
            Reporter:
            szehon Szehon Ho
          • Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

            • Created:
              Updated:

              Development