又或者是反过来。 你可以尝试把 kafka connector 放到 /libs 里,自己应用打包里不带 kafka jar 也不带 kafka connector jar,应该就可以不改配置。
Best, tison. tison <wander4...@gmail.com> 于2021年1月27日周三 下午2:47写道: > 你是打包的时候自己打了 kafka 的依赖进去吗?看起来是应用里有一个 kafka 版本 A,接口 > org.apache.kafka.common.serialization.Serializer 用应用 classloader 加载,然后 > flink kafka connector 用集群 classloader 加载,继承自集群 classloader 里的 > org.apache.kafka.common.serialization.Serializer 导致这个问题。 > > Best, > tison. > > > lp <973182...@qq.com> 于2021年1月27日周三 下午12:39写道: > >> 我写了一个 process >> >> function的demo,自定义source产生数据sink到kafka,然后发布到yarn集群运行,flink版本是1.11.2,采用application >> Mode 部署,然后发现jobmanager-log报错: Failed to construct kafka producer;Caused >> by: >> org.apache.kafka.common.KafkaException: class >> org.apache.kafka.common.serialization.ByteArraySerializer is not an >> instance >> of org.apache.kafka.common.serialization.Serializer。 >> 换了flink版本为1.12.1发现还是报这个错,后尝试采用per-job >> >> Mode部署发现是OK的。查资料发现是跟flink的类加载方式有关,即flink-conf.yml中的classloader.resolve-order参数,要将默认的 >> >> child-first改成parent-first,修改后确实ok了,但是有个疑惑,为啥要改这个参数呢,看了官方文档,一般不建议改这个参数的,他避免了使用flink内置的类加载器,而是使用APP自己的。 >> >> >> >> -- >> Sent from: http://apache-flink.147419.n8.nabble.com/ > >