一:分析是什么

1.先摆问题:

Flink平台Submit New Job中上传Maven package打包后的jar包,填上全类名,提交后出现Server Response Message:Internal server error错误

2.查看Log报错,发现是第一张截图中的第二步中填写的全类名在jar包中找不到

3.于是可以初步判定不是虚拟机上Flink的配置错误,而是上传的jar包出了问题。通过笔者查找了半天,终于发现了问题所在,在WordCount下的target文件夹中的classes文件夹,Maven只编译了maven项目中的src/main/java中的App,没有编译scala中的主类

二:分析为什么

        在Maven中Lifecycle中

        clean会将项目中的target文件夹删除,

        compile会编译项目开始自带的src/main/java,而不会编译自己创建的src/main/scala        

        package会根据你编译后的target文件夹而生成jar包(需要注意:如果没有compile而直接点击package,则Maven会自动为你编译并生成jar包)

        这样就可以理解你package打包成jar包的时候,target类中的classes并不会存在scala中的主类了。

三:解决办法

1.先使用Maven中Lifecycle中的clean,清除target包

 2.再点击Build中的Rebuild  Project

原因:Rebuild Project之后,Maven会自动编译你的整个项目,当然也包括了单独使用Maven中compile没有编译到的src/main/scala文件夹下的主类,并输出到target当中,如下图:

可以发现scala中的主类也被编译到了target中 。

3.再使用Maven中Lifecycle中的package打包即可。

4.再将新生成的jar包添加到flink平台,填入全类名(com.zhj.StreamWordCount),提交即可

可以自动跳转看到:

 查看输出结果:

 END:这样就解决了flink上传jar包出现Server Response Message:Internal server error的问题!

最主要的还是要看报错日志,找到原因,并进行针对性解决。

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: