okio的jar包衝突解決

2021-10-02 06:26:28 字數 853 閱讀 7169

在檔案/opt/client/flink/flink/conf/flink-conf.yaml中配置對映關係:

***x

執行flink run -m yarn-cluster -ynm 「test」 /opt/client/flink/flink/examples/streaming/wordcount.jar --input hdfs://hacluster/yy/ --output hdfs://hacluster/yy/test

報錯異常如下:

分析:1、 報錯異常就是沒有okio.1.14.0包中的 okio.bufferedsource.readutf8linestrict(long)方法

2、 mrs-obs-provider包下面的okio包都是okio.1.14.0的,flink核心**用的卻是okio.1.4.0的,兩者不一致

3、 對比了這兩個包,高版本有帶這個引數的這個方法,低版本沒有

4、 從報錯棧看出是obs sdk依賴這個包,不是mrsobscredentialsprovider直接依賴的。

5、 flink的classpath下包含/opt/client/flink/flink/lib下面的包和yarn classpath下面的包,這樣classpath池就包含了okio.1.14.0和okio.1.4.0的包,出現衝突

grep 『httpcodec』 * 看看

看看這個類在你flink的lib 下有沒有

6、 解決方法兩個:1.公升級flink核心中的okio包版本,2.把 provider改造下,自己把okio打到自己的包裡,不用外面flink的 okio包

7、 因為客戶要用自己的flink元件執行翻譯,解決方法一不一定可以解決使用者的問題,所以應該使用解決方法2

Jar 包衝突的解決

1.導致jar包衝突的原因 我們在發布應用的時候,有時能正常啟動,有時卻報nosuchmehodexception nosuchfieldexception classnotfoundexception或者nosuchmehoderror noclassdeffounderror,而發布用的war包...

jar包公升級,jar包衝突

事件 需要將clientlibrary 1.0.jar公升級為clientlibrary 1.1.jar,對jar包版本進行公升級 檢查原因 檢查備份系統可正常訪問,公升級jar包後出現同樣問題,確定jar的問題,getbean name 引用的spring.jar中的org.springframe...

jar包衝突問題

最終解決方案 1 通過檢視錯誤日誌或者錯誤提示,確定問題出現的類,比如 httpservletrequest.x,那麼httpservletrequest可能就是導致問題出現的衝突類。2 查詢所有包含httpservletrequest的jar包 findclass.sh lib httpservl...