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的包,已經實現了深度搜索。優化