Flink里面有一个神坑,叫作FI坑。其实只是使用Fi的时候被暴露出来。可是,杀不死你的,终将使你更增强大。缓存
Flink集群有一个lib文件件,里面比较happy,能够放各类jar;这样,client端在提交的时候就不须要把全jar打成一个肥肥,只须要增量的把包放到client端lib文件夹里面便可。session
这个实际上是一个很是人性化的设置;可是,加入没有人告诉你Flink集群这种机制,你已提交全量包,发现各类冲突,各类函数找不到,是否是很懵逼?app
这个多是二次封装友好性问题了。可是这里一个知识点:Flink集群以及client有一个lib的地方,能够放置jar包,集群的jar包是避免打包过大的优化处理;client端的lib是用来存放增量的jar包。eclipse
另外若是你在不断的提交和修改client的jar包,那么可能会有缓存现象,这样你调整的结果并不会体现出来(只要jar包存在一次就会一直存在);直到你重启一个yarn的session才会重置client端提交的jar包。maven
基本处理模式:若是已经添加了对应jar包,可是仍然报相同的类找不到,OK,重启yarn-session;报一些乱七八糟的错误,看不懂,没有头绪的异常,重启yarn-session;若是添加完了jar包,发现初始化错误(没有了ClassNotFound/Def),此时极可能是该jar包相关依赖须要添加。函数
这里要说一下,eclipse里面解析maven的依赖树讲真给力。好比com/carrXXX/hppc/YYY找不到,我尝试搜一下carr结果自动跳出了hpcc的包,已经实现了深度搜索。优化