flink错误:无法找到或加载主类

dgsult0t  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(941)

我试着运行那些flink基准测试:https://github.com/dataartisans/flink-benchmarks
我使用maven生成了jar文件,命令如下:

mvn clean package -Pbuild-jar

然后,我尝试使用以下命令在flink集群上运行基准测试:

./bin/flink run -c org.apache.flink.benchmark.WindowBenchmarks ~/flinkBenchmarks/target/flink-hackathon-benchmarks-0.1.jar

我已经使用了-c选项将我要运行的基准(windowbenchmarks)的主要部分添加到类路径中。
最后,我得到一个错误:


# JMH version: 1.19

# VM version: JDK 1.8.0_151, VM 25.151-b12

# VM invoker: /usr/lib/jvm/java-8-oracle/jre/bin/java

# VM options: -Dlog.file=/home/user/flink-1.3.2/flink-dist/target/flink-1.3.2-bin/flink-1.3.2/log/flink-user-client-mypc.log -Dlog4j.configuration=file:/home/user/flink-1.3.2/flink-dist/target/flink-1.3.2-bin/flink-1.3.2/conf/log4j-cli.properties -Dlogback.configurationFile=file:/home/user/flink-1.3.2/flink-dist/target/flink-1.3.2-bin/flink-1.3.2/conf/logback.xml -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

# Warmup: 10 iterations, 1 s each

# Measurement: 10 iterations, 1 s each

# Timeout: 10 min per iteration

# Threads: 1 thread, will synchronize iterations

# Benchmark mode: Throughput, ops/time

# Benchmark: org.apache.flink.benchmark.WindowBenchmarks.sessionWindow

# Run progress: 0.00% complete, ETA 00:04:00

# Fork: 1 of 3

Error: Could not find or load main class org.openjdk.jmh.runner.ForkedMain
<forked VM failed with exit code 1>
<stdout last='20 lines'>
</stdout>
<stderr last='20 lines'>
Error: Could not find or load main class org.openjdk.jmh.runner.ForkedMain
</stderr>

# Run complete. Total time: 00:00:00

Benchmark  Mode  Cnt  Score   Error  Units

The program didn't contain a Flink job. Perhaps you forgot to call execute() on the execution environment.

我没有任何与Flink和Maven以前的经验,所以我发现什么是失踪。我的第一个想法是,这是一个缺少依赖项的错误,但它们看起来很好。有什么建议吗?
提前谢谢!

yhived7q

yhived7q1#

flink-benchmarks 是一个存储库,其中包含一组微基准测试,设计用于在单机上运行,而不是在集群上运行。这个 main 在各种类(测试用例)中定义的函数是“jmh”运行程序,而不是flink程序。因此,您可以执行整个基准测试套件(大约需要1小时): mvn -Dflink.version=1.5.0 clean install exec:exec 或者,如果您只想执行一个基准测试,最好的方法是手动执行所选的main函数。例如从ide(不要忘记选择 flink.version ,中定义了属性的默认值 pom.xml ).
也可以从控制台执行单个基准测试,但我已经很久没有尝试过了。

相关问题