Github user rmetzger commented on the pull request:
https://github.com/apache/flink/pull/331#issuecomment-71467375
I think it would be better not to print the help if the user specified
something incorrectly. Maybe just the error message and a note that -h prints
the help?
I've tried out the change, but now, the message is as the very bottom of
the output. Its now probably even harder to find it.
**Bad** (see below for *Good*)
```
robert@robert-da ~/flink-workdir/flink2/build-target (git)-[flink-1436] %
./bin/flink ./examples/flink-java-examples-0.9-SNAPSHOT-WordCount.jar
Action "run" compiles and runs a program.
Syntax: run [OPTIONS] <jar-file> <arguments>
"run" action options:
-c,--class <classname> Class with the program entry point
("main"
method or "getPlan()" method. Only
needed
if the JAR file does not specify the
class
in its manifest.
-m,--jobmanager <host:port> Address of the JobManager (master) to
which to connect. Specify
'yarn-cluster'
as the JobManager to deploy a YARN
cluster
for the job. Use this flag to connect
to a
different JobManager than the one
specified in the configuration.
-p,--parallelism <parallelism> The parallelism with which to run the
program. Optional flag to override the
default value specified in the
configuration.
Additional arguments if -m yarn-cluster is set:
-yD <arg> Dynamic properties
-yj,--yarnjar <arg> Path to Flink jar file
-yjm,--yarnjobManagerMemory <arg> Memory for JobManager Container
[in
MB]
-yn,--yarncontainer <arg> Number of YARN container to
allocate
(=Number of Task Managers)
-yq,--yarnquery Display available YARN resources
(memory, cores)
-yqu,--yarnqueue <arg> Specify YARN queue.
-ys,--yarnslots <arg> Number of slots per TaskManager
-yt,--yarnship <arg> Ship files in the specified
directory
(t for transfer)
-ytm,--yarntaskManagerMemory <arg> Memory per TaskManager Container
[in
MB]
Invalid action: "./examples/flink-java-examples-0.9-SNAPSHOT-WordCount.jar"
1 robert@robert-da ~/flink-workdir/flink2/build-target (git)-[flink-1436]
```
The "info" command is over-engineered in my optionion. It contains only one
possible option, which is "-e" for execution plan. I would vote to remove the
info action and call it "plan" or so.
Or keep its "info" name and print the plan by default (this is not @mxm's
fault .. but it would be nice to fix this with the PR)
```
./bin/flink info
./examples/flink-java-examples-0.9-SNAPSHOT-WordCount.jar
Action "info" displays information about a program.
Syntax: info [OPTIONS] <jar-file> <arguments>
"info" action options:
-c,--class <classname> Class with the program entry point
("main"
method or "getPlan()" method. Only
needed
if the JAR file does not specify the
class
in its manifest.
-e,--executionplan Show optimized execution plan of the
program (JSON)
-m,--jobmanager <host:port> Address of the JobManager (master) to
which to connect. Specify
'yarn-cluster'
as the JobManager to deploy a YARN
cluster
for the job. Use this flag to connect
to a
different JobManager than the one
specified in the configuration.
-p,--parallelism <parallelism> The parallelism with which to run the
program. Optional flag to override the
default value specified in the
configuration.
Error: Specify one of the above options to display information.
```
**Good**
What I liked was the error reporting when passing an invalid file as the
jar file:
```
robert@robert-da ~/flink-workdir/flink2/build-target (git)-[flink-1436] %
./bin/flink run ../flink-yarn-0.9-SNAPSHOT/LICENSE
Action "run" compiles and runs a program.
Syntax: run [OPTIONS] <jar-file> <arguments>
"run" action options:
-c,--class <classname> Class with the program entry point
("main"
method or "getPlan()" method. Only
needed
if the JAR file does not specify the
class
in its manifest.
-m,--jobmanager <host:port> Address of the JobManager (master) to
which to connect. Specify
'yarn-cluster'
as the JobManager to deploy a YARN
cluster
for the job. Use this flag to connect
to a
different JobManager than the one
specified in the configuration.
-p,--parallelism <parallelism> The parallelism with which to run the
program. Optional flag to override the
default value specified in the
configuration.
Additional arguments if -m yarn-cluster is set:
-yD <arg> Dynamic properties
-yj,--yarnjar <arg> Path to Flink jar file
-yjm,--yarnjobManagerMemory <arg> Memory for JobManager Container
[in
MB]
-yn,--yarncontainer <arg> Number of YARN container to
allocate
(=Number of Task Managers)
-yq,--yarnquery Display available YARN resources
(memory, cores)
-yqu,--yarnqueue <arg> Specify YARN queue.
-ys,--yarnslots <arg> Number of slots per TaskManager
-yt,--yarnship <arg> Ship files in the specified
directory
(t for transfer)
-ytm,--yarntaskManagerMemory <arg> Memory per TaskManager Container
[in
MB]
org.apache.flink.client.program.ProgramInvocationException: Error while
opening jar file '../flink-yarn-0.9-SNAPSHOT/LICENSE'. error in opening zip file
at
org.apache.flink.client.program.PackagedProgram.getEntryPointClassNameFromJar(PackagedProgram.java:466)
at
org.apache.flink.client.program.PackagedProgram.<init>(PackagedProgram.java:134)
at
org.apache.flink.client.program.PackagedProgram.<init>(PackagedProgram.java:102)
at
org.apache.flink.client.CliFrontend.buildProgram(CliFrontend.java:731)
at org.apache.flink.client.CliFrontend.run(CliFrontend.java:332)
at
org.apache.flink.client.CliFrontend.parseParameters(CliFrontend.java:1078)
at org.apache.flink.client.CliFrontend.main(CliFrontend.java:1102)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:215)
at java.util.zip.ZipFile.<init>(ZipFile.java:145)
at java.util.jar.JarFile.<init>(JarFile.java:154)
at java.util.jar.JarFile.<init>(JarFile.java:118)
at
org.apache.flink.client.program.PackagedProgram.getEntryPointClassNameFromJar(PackagedProgram.java:464)
... 6 more
The exception above occurred while trying to run your command.
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---