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