3

これらの指示に従って、既存のストーム トポロジをフリンク ジョブに変換しています。flink 1.0 (SNAPSHOT) を git 経由でインストールし、ウェブサーバーとストリーミング サーバーをローカルで実行しています。

gradle を介して .jar ファイルにトポロジを構築し、flink Web インターフェイスを介して送信すると、「エントリ クラスが指定されていません」というメッセージが表示されます。

エントリーポイントがありませんか?.jar に何か特別なものが必要ですか? マニフェスト?

この .jar は、ストーム クラスターに送信されたときに機能していました。関連する flink .jar ファイルを (どのように) 追加しました。


編集:

コマンドライン経由でジョブを送信すると、次のメッセージが表示されました。

org.apache.flink.client.program.ProgramInvocationException: 'Main-Class' も 'program-class' エントリも 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. コマンドラインにエントリ ポイントを追加します (「-c <package>」オプションを使用します)。
4

1 に答える 1

2

Flink では、

public static void main(String[] args)

方法。これは、Flink で実行される Storm トポロジにも適用されます。

  1. マニフェストファイルをjar_ _Main-Classprogram-classprogram-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 ) 。

于 2015-10-25T10:17:50.810 に答える