我已经使用Scala2.11.7创建了一个带有Apache 1.0.3的应用程序,我想在本地测试它(单个FLink )。因此,我按照网站上的说明执行了以下操作:
./bin/start-local.sh
tail log/flink-*-jobmanager-*.log它启动得很好,我可以在localhost:8081上看到web界面。然后,我试图提交我的申请,但我得到了一个异常或奇怪的消息。例如,当我键入以下任一命令时:
./bin/flink run ./myApp.jar
./bin/flink run ./myApp.jar -c MyMain
./bin/flink run ./myApp.jar -c myMain.class
./bin/flink run ./myApp.jar -c myMain.scala
./bin/flink run ./myApp.jar -c my.package.myMain
./bin/flink run ./myApp.jar -c my.package.myMain.class
./bin/flink run ./myApp.jar -c my.package.myMain.scala我得到了以下异常:
------------------------------------------------------------
The program finished with the following exception:
org.apache.flink.client.program.ProgramInvocationException: Neither a 'Main-Class', nor a 'program-class' entry was found in the jar file.
at org.apache.flink.client.program.PackagedProgram.getEntryPointClassNameFromJar(PackagedProgram.java:571)
at org.apache.flink.client.program.PackagedProgram.<init>(PackagedProgram.java:188)
at org.apache.flink.client.program.PackagedProgram.<init>(PackagedProgram.java:126)
at org.apache.flink.client.CliFrontend.buildProgram(CliFrontend.java:922)
at org.apache.flink.client.CliFrontend.run(CliFrontend.java:301)
at org.apache.flink.client.CliFrontend.parseParameters(CliFrontend.java:1192)
at org.apache.flink.client.CliFrontend.main(CliFrontend.java:1243)当我键入以下任一命令时:
./bin/flink run ./ -c myMain myApp.jar
./bin/flink run ./ -c myMain.class myApp.jar
./bin/flink run ./ -c myMain.scala myApp.jar
./bin/flink run ./ -c my.package.myMain myApp.jar
./bin/flink run ./ -c my.package.myMain.class myApp.jar
./bin/flink run ./ -c my.package.myMain.scala myApp.jar我得到以下错误:
JAR file is not a file: .
Use the help option (-h or --help) to get help on the command.以上命令既不适用于-c,也不适用于--class。我使用IntelliJ,并使用Build Module from Dependencies选项编译应用程序。我做错了什么?
发布于 2016-07-02 22:44:27
提交JAR的正确方法是:
bin/flink run -c my.package.myMain myApp.jar您必须在JAR文件之前指定参数(如-c)。最初您会得到错误消息,因为./被解释为JAR,而该行的其余部分被忽略。
-p参数是可选的。您的最后一个示例可以工作,因为参数顺序是正确的,而不是因为并行标志。
发布于 2016-05-27 17:38:38
我找出了问题所在。Flink需要将并行度作为参数传递,否则会出现程序调用异常。下面的命令对我有效:
./bin/flink run -p2 --class myMain myApp.jar发布于 2018-04-04 06:22:24
您必须在pom文件中提到入口点类。参见pom文件snippety中的以下部分
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.xyz.myMain</mainClass>
</transformer>
</transformers>
请检查下面的代码片段。
https://stackoverflow.com/questions/37453262
复制相似问题