我正在使用以下脚本提交flink申请,
flink run -m yarn-cluster -c com.my.flink.learningflink.FlinkToMySQL -yn 4 -ys 1 -j /tmp/learing.flink.1.7.1-0.1.jar
我的类FlinkToMySQL在learing.flink.1.7.1-0.1.jar中,但是我的应用程序还需要依赖于mysql jar,我该如何指定mysql jar和其他依赖的jar。
我还尝试了以下脚本的-yt
选项
flink run -m yarn-cluster -c com.my.flink.learningflink.FlinkToMySQL -yn 4 -ys 1 -yt /tmp/mysql-connector-java-5.1.45.jar -j /tmp/learing.flink.1.7.1-0.1.jar
,它仍然抱怨找不到合适的驱动程序(在我的本地IDE中运行良好)。
谢谢。
答案 0 :(得分:1)
通常,Flink支持多种方式来运送用户代码jar:
FLINK_HOME/lib
中,该{@ 1}已发送到集群中-yt
指定应发送到集群并添加到系统的类路径中的其他文件答案 1 :(得分:0)
使用maven作为“具有依赖关系的jar”来构建jar,并部署该jar。
我的Maven构建定义如下:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass></mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>