3

我正在按照这些说明将现有的 Storm 拓扑转换为 flink 作业。我通过 git 安装了 flink 1.0 (SNAPSHOT),并让网络服务器和流媒体服务器在本地运行。

我通过 gradle 将拓扑构建到一个 .jar 文件中,并通过 flink Web 界面提交并收到此消息:“未指定入口类”。

所以 - 缺少一个切入点?.jar 需要什么特别的东西?清单?

此 .jar 在提交到风暴集群时正在工作。我已经添加(看起来像)相关的 flink .jar 文件。


编辑:

通过 cmd-line 提交作业向我显示了以下消息:

org.apache.flink.client.program.ProgramInvocationException:在 jar 文件中找不到“主类”和“程序类”条目。在 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. 在 cmd-line 上添加入口点(使用 '-c <package>' 选项)
4

1 回答 1

2

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

public static void main(String[] args)

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

  1. 在你的文件中包含一个清单文件jar(相应的条目必须是Main-Classor program-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,您可以在Flink Options-c输入字段中指定标志(参见此处:https ://ci.apache.org/projects/flink/flink-docs-master/apis/web_client.html )

于 2015-10-25T10:17:50.810 回答