flink 動態支持依賴jar包提交



1、下載對應版本完整flink版本,打開org.apache.flink.yarn 模塊的pom文件,pom文件的parent描述中version版本改為對應版本,如:將1.11-SNAPSHOT 改為1.11.2
2、修改YarnClusterDescriptor 類的addLibFoldersToShipFiles 方法,在方法首部添加代碼:
String userLibDir = System.getenv().get("USER_LIB_DIR");
if (userLibDir != null) {
File directoryFile = new File(userLibDir);
if (directoryFile.isDirectory()) {
effectiveShipFiles.add(directoryFile);
}
}

使用mvn clean package -Dmaven.test.skip=true 編譯org.apache.flink.yarn 模塊
用編譯后得到的類YarnClusterDescriptor.class替換flink安裝包中flink-dist_2.11-1.11.2.jar對應的類

3、修改flink安裝目錄下bin目錄下的config.sh文件,在constructFlinkClassPath函數首部添加如下代碼:
for f in $USER_LIB_DIR/*.jar
do
FLINK_CLASSPATH=$FLINK_CLASSPATH:$f
done

4、修改應用啟動腳本,在啟動腳本前設置用戶lib庫,如下:
export USER_LIB_DIR=/xxx/lib

5、用戶lib庫下的log4j相關jar包需要去掉,否則與flink安裝包中的依賴包沖突,可能導致打印不全


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM