Запустите сгенерированный файл JAR в Apache Flink - PullRequest
0 голосов
/ 09 сентября 2018

в данный момент я пытаюсь запустить свое первое приложение flink. Я уже протестировал java-файл (KMeans.java) в IDE, и он отлично работает, но я не могу обработать этот java-файл как jar в командной строке. Сборка была успешно создана с mvn clean package. Но если я запускаю свой jar-файл в командной строке flink run -c KMeans name.jar появляется это сообщение об ошибке:

Программа завершилась со следующим исключением:

org.apache.flink.client.program.ProgramInvocationException: класс точки входа программы 'KMeans' не найден в файле jar. в org.apache.flink.client.program.PackagedProgram.loadMainClass (PackagedProgram.java:617) в org.apache.flink.client.program.PackagedProgram. (PackagedProgram.java:199) в org.apache.flink.client.cli.CliFrontend.buildProgram (CliFrontend.java:856) на org.apache.flink.client.cli.CliFrontend.run (CliFrontend.java:206) в org.apache.flink.client.cli.CliFrontend.parseParameters (CliFrontend.java:1044) в org.apache.flink.client.cli.CliFrontend.lambda $ Основной $ 11 (CliFrontend.java:1120) в java.security.AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:422) в org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1754) в org.apache.flink.runtime.security.HadoopSecurityContext.runSecured (HadoopSecurityContext.java:41) в org.apache.flink.client.cli.CliFrontend.main (CliFrontend.java:1120) Вызывается: java.lang.ClassNotFoundException: KMeans в java.net.URLClassLoader.findClass (URLClassLoader.java:381) в java.lang.ClassLoader.loadClass (ClassLoader.java:424) в java.lang.ClassLoader.loadClass (ClassLoader.java:357) в java.lang.Class.forName0 (собственный метод) в java.lang.Class.forName (Class.java:348) в org.apache.flink.client.program.PackagedProgram.loadMainClass (PackagedProgram.java:614) ... еще 10

Итак, я посмотрел сгенерированную целевую папку, и в папке классов есть файл KMeans.class. Так я делаю это неправильно?

Заранее спасибо

1 Ответ

0 голосов
/ 09 сентября 2018

Вам нужно указать полное имя класса, например, org.apache.flink.examples.java.clustering.KMeans.

Обратите внимание, что вам нужно использовать флаг -c, только если файл JAR не указывает класс для запуска в своем манифесте.

...