java - Flink 作业 : Getting InvalidClassException: com. fastxml.jackson.databind.ObjectMapper

标签 java jackson hadoop-yarn apache-flink flink-streaming

我们的 flink 作业在本地运行得非常好,但在尝试将其部署到 yarn 集群中时,它抛出以下错误。

Flink 版本:1.5.0 jackson 2.6.7

Caused by: java.io.InvalidClassException: com.fasterxml.jackson.databind.ObjectMapper; local class incompatible: stream classdesc serialVersionUID = 2, local class serialVersionUID = 1

我尝试过不同的 flink 版本,所有版本都存在问题。

DataStream stream = DataStreamManager
            .getStatusUpdateStream(kafkaConsumerConfig, env)
            .filter(new CheckStatusUpdate())
            .keyBy(new OrderUpdateKeySelector());

    stream.process(new ProcessBookingUpdatesEvents(config)).setParallelism(processBookingUpdatesEventsParallelism)
            .process(new ExecuteOrderStatusUpdateNotifierFilter(config)).setParallelism(filterParallelism)
            .process(new ProcessOrderPostFiltering(config,communicationConfig)).setParallelism(processOrderPostFilteringParallelism);

提交flink作业的命令:

export HADOOP_CLASSPATH=`hadoop classpath`;HADOOP_CONF_DIR=/etc/hadoop/conf flink-1.5.0/bin/flink run -m yarn-cluster -yn 2 -ys 1  -yjm 2048 -ytm 4096  -yst -ynm  order_updates -yqu default -p 1 -c com.order.workflow.consumer.flink.OrderStatusUpdateJob  orchestrator-build-1.0.21-staging.jar  config.yml

最佳答案

欢迎来到类路径 hell :-)。根据您提供的信息,我无法真正看到此错误出现在哪里,但我猜想在 flink-operator 中的某个地方您尝试使用 ObjectMapper 来编码/解码一些数据。我建议您检查 yarn 类路径上的内容( jackson 版本)。如果您需要特定版本的 jackson,请构建一个带有阴影 jackson 版本的 fat-jar。如果不玩简单的游戏,请选择已经是您的 yarn 类路径的那个,或者(也许更容易)选择已经为您着色的一个 flink:您可以在包名称下找到:org.apache.flink.hadoop .shaded.org.codehaus.jackson.map.

希望有帮助。

关于java - Flink 作业 : Getting InvalidClassException: com. fastxml.jackson.databind.ObjectMapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55898086/

相关文章:

java - 使用 Java 进行摩尔斯电码转换

java - 通过 json schema 将 map 转换为 json 字符串

java - Jackson - 反序列化通用类变量

hadoop - 运行带 Spark 的 yarn 不适用于 Java 8

等同于 PCRE/etc 的 Java 正则表达式。简写 `\K` ?

java - 有生存时间的消息队列

java - JPQL插入新实体违反外键约束

java - JSON Jackson 根据我的预期映射到其他构造函数

hadoop - 应用程序接受和运行状态之间耗时

hadoop - 在从节点 (YARN) 上运行 Spark 不起作用