关于将Dinky使用Jenkins部署的相关问题解决
由于Dinky官方建议是在Linux解压直接用启动命令启动的,如果想将其内嵌到其他WEB应用中统一使用Jenkins部署到容器中,默认是不支持的,主要有以下几点:
1、目录访问问题
Dinky中配置集群录入了很多hadoop、flink的配置文件目录,这些目录都是Dinky部署服务器绝对路径,容器中是无法访问这些目录的,需要将这些目录挂载到容器中。
2、容器目录
在Dinky中创建org.apache.flink.yarn.YarnClusterDescriptor的时候需要获取flink dist jar,可能看名字以为是flink-dist.jar,其实源码里是获取org.apache.flink.yarn.YarnClusterClientFactory类所在的jar包路径。

在容器部署的情况下,这里得到的路径是”nested:/pigx-boot/app.jar/!BOOT-INF/lib/flink-yarn-1.18.1.jar!/“,之后下图这里就报错了,抛出:YarnDeploymentException("The Flink jar path is null");

解决方案1:在flink-conf.yaml中配置yarn.flink-dist-jar: /data/flink/lib/flink-yarn-1.18.1.jar # YarnConfigOptions.FLINK_DIST_JAR。

解决方案2:从上面的错误路径中用正则解析出flink-yarn-1.18.1.jar,然后定义一个根目录的全局变量,两者拼在一起就ok了。”/app-name/jar_name.jar“ + "/BOOT-INF/lib/flink-yarn-1.18.1.jar"

更多推荐


所有评论(0)