Flink-Kafka作业提交服务器遇到问题java.lang.ClassNotFoundException: org.apache.flink.streaming.connectors.kafka.


java.lang.ClassNotFoundException: org.apache.flink.streaming.connectors.kafka.KafkaSerializationSchema

Flink从Kafka中读取数据,本地运行时一切正常,但打包jar提交服务器时一直无法运行,日志报错 java.lang.ClassNotFoundException: org.apache.flink.streaming.connectors.kafka.KafkaSerializationSchema,

猜测是对应的connector jar包没有引入,重启Flink无效,重新打包无效,怀疑少加了build但是搜了maven仓库仍然不会改。

百度发现Flink社区及StackOverflow都有人提出类似的问题,但是都看不太懂,最后还是从这一篇找到解决方案,博主说的没有特别清楚:https://www.jianshu.com/p/f99b6635fbc5

在pom.xml加入如下代码,其中“ site.buzhou.source.TestKafka” 换为你的运行类。

 
        
            
                org.apache.maven.plugins
                maven-shade-plugin
                3.0.0
                
                    
                        package
                        
                            shade
                        
                        
                            
                                
                                    com.google.code.findbugs:jsr305
                                    org.slf4j:*
                                    log4j:*
                                
                            
                            
                                
                                    
                                    *:*
                                    
                                        META-INF/*.SF
                                        META-INF/*.DSA
                                        META-INF/*.RSA
                                    
                                
                            
                            
                                
                                    site.buzhou.source.TestKafka