0
点赞
收藏
分享

微信扫一扫

升级Spark 3.2的包冲突记录

干自闭 2022-01-28 阅读 110

1.java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.JsonMappingException.<init>(Ljava/io/Closeable;Ljava/lang/String;)V

11:13:16.370 [Driver] ERROR org.apache.spark.deploy.yarn.ApplicationMaster - User class threw exception: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.JsonMappingException.<init>(Ljava/io/Closeable;Ljava/lang/String;)V
java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.JsonMappingException.<init>(Ljava/io/Closeable;Ljava/lang/String;)V
	at com.fasterxml.jackson.module.scala.JacksonModule.setupModule(JacksonModule.scala:61)
	at com.fasterxml.jackson.module.scala.JacksonModule.setupModule$(JacksonModule.scala:46)
	at com.fasterxml.jackson.module.scala.DefaultScalaModule.setupModule(DefaultScalaModule.scala:17)
	at com.fasterxml.jackson.databind.ObjectMapper.registerModule(ObjectMapper.java:718)
	at org.apache.spark.util.JsonProtocol$.<init>(JsonProtocol.scala:62)
	at org.apache.spark.util.JsonProtocol$.<clinit>(JsonProtocol.scala)
	at org.apache.spark.scheduler.EventLoggingListener.initEventLog(EventLoggingListener.scala:89)
	at org.apache.spark.scheduler.EventLoggingListener.start(EventLoggingListener.scala:84)
	at org.apache.spark.SparkContext.<init>(SparkContext.scala:610)
	at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2690)
	at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$2(SparkSession.scala:949)
	at scala.Option.getOrElse(Option.scala:189)
	at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:943)
	at com.hiido.server.service.impl.SparkSqlJob.executing(SparkSqlJob.java:56)
	at com.hiido.server.service.impl.SparkSqlJob.main(SparkSqlJob.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:737)

问题原因:hive-exec-2.3.9.jar把com.fasterxml.jackson.databind也编译进去了,并且依赖的版本是2.6.5的,对应的没有这个方法,这个方法在2.7之后的版本才出现。

    public JsonMappingException(Closeable processor, String msg) {
        super(msg);
        _processor = processor;
        if (processor instanceof JsonParser) {
            // 17-Aug-2015, tatu: Use of token location makes some sense from databinding,
            //   since actual parsing (current) location is typically only needed for low-level
            //   parsing exceptions.
            _location = ((JsonParser) processor).getTokenLocation();
        }
    }

解决方法:

修改hive 2.3.9的pom:

<jackson.new.version>2.6.5</jackson.new.version>
改成
<jackson.new.version>2.10.0</jackson.new.version>
重新编译hive 2.3.9中的ql模块(hive-exec-2.3.9.jar),完成。
举报

相关推荐

0 条评论