将风暴拓扑转换为 Flink - "no entry class specified"?



我正在通过这些方向将现有的风暴拓扑转换为flink作业。我通过git安装了flink 1.0 (SNAPSHOT),并在本地运行web服务器和流媒体服务器。

我通过gradle将拓扑构建到一个.jar文件中,并通过flink web界面提交它,得到这样的消息:"no entry class specified"。

所以-缺少切入点?.jar需要一些特殊的东西吗?一个清单吗?

当提交到风暴集群时,这个.jar正在工作。我已经添加了相关的flink .jar文件。


编辑:

通过命令行提交作业显示了以下消息:

org.apache.flink.client.program。ProgramInvocationException:在jar文件中既没有找到'Main-Class'也没有找到'program-class'条目。org.apache.flink.client.program.PackagedProgram.getEntryPointClassNameFromJar (PackagedProgram.java: 563)在org.apache.flink.client.program.PackagedProgram。(PackagedProgram.java: 186)在org.apache.flink.client.program.PackagedProgram。(PackagedProgram.java: 124)org.apache.flink.client.CliFrontend.buildProgram (CliFrontend.java: 725)org.apache.flink.client.CliFrontend.run (CliFrontend.java: 287)org.apache.flink.client.CliFrontend.parseParameters (CliFrontend.java: 971)org.apache.flink.client.CliFrontend.main (CliFrontend.java: 1021)

阅读这个JIRA建议一些答案:

  1. 添加清单
  2. 在命令行上添加入口点(使用'-c '选项)

在Flink中,有两种方法可以指定包含

的入口点类。
public static void main(String[] args)

方法。这也适用于在Flink中执行的Storm拓扑。

  1. jar中包含一个清单文件(相应的条目必须是Main-Classprogram-class,即"program-class: package.and.EntryClass")
  2. 您可以指定-c标志(即bin/flink run -c package.and.EntryClass <jarFile.jar>(见https://ci.apache.org/projects/flink/flink-docs-master/apis/cli.html))

如果你正在使用Flink的WebClient,你可以指定-c标志在输入字段Flink选项(见这里:https://ci.apache.org/projects/flink/flink-docs-master/apis/web_client.html)

相关内容

  • 没有找到相关文章

最新更新