将风暴拓扑转换为flink - “没有指定入口类”?

时间:2015-10-25 00:39:35

标签: jar apache-storm apache-flink

我正在通过these指示将现有的风暴拓扑转换为flink作业。我通过git安装了flink 1.0(SNAPSHOT),并让网络服务器和流媒体服务器在本地运行。

我通过gradle将拓扑构建到.jar文件中并通过flink web界面提交,并收到以下消息:“未指定任何入口类”。

那么 - 错过了切入点? .jar需要什么特别的东西?清单?

这个.jar在提交给风暴群时正在工作。我添加了(看起来像)相关的flink .jar文件。

编辑:

通过cmd-line提交作业向我展示了这条消息:

  

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)

阅读this JIRA提出了一些答案:

  1. 添加清单
  2. 在cmd-line上添加入口点(使用'-c< package>'选项)

1 个答案:

答案 0 :(得分:2)

在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
  3. 如果您使用的是Flink的WebClient,则可以在输入字段 Flink Options 中指定-c标志(请参阅此处:https://ci.apache.org/projects/flink/flink-docs-master/apis/web_client.html