JavaNoClassDefFoundError:ApacheFlink复杂事件处理

mbzjlibv  于 2021-06-24  发布在  Flink
关注(0)|答案(2)|浏览(352)

我试图理解apache-flink-cep程序来监控flink官方文档中描述的数据中心的机架温度。但是当我按照步骤使用 mvn clean package 并尝试使用命令执行包

java -cp "../cep-monitoring-1.0.jar" org.stsffap.cep.monitoring.CEPMonitoring

但我得到以下错误,

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/streaming/api/functions/source/SourceFunction
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.streaming.api.functions.source.SourceFunction
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 7 more

我尝试了不同的方法来给出这里描述的类路径,但是得到了相同的错误。有人能指出我运行程序的错误吗?

kulphzqa

kulphzqa1#

要向本地flink群集提交作业,请执行以下操作:
快跑,Flink。 /path/to/flink-1.4.0/bin/start-local.sh 提交作业。 /path/to/flink-1.4.0/bin/flink run -c com.package.YourClass /path/to/jar.jar 或者,您可以从ide运行作业:
在这种情况下,你的工作将在Flink环境中进行。看看Flink的例子:https://github.com/apache/flink/blob/master/flink-examples/flink-examples-streaming/src/main/java/org/apache/flink/streaming/examples/wordcount/wordcount.java

6ss1mwsb

6ss1mwsb2#

cep示例使用flink版本1.3.2。下面是运行它的步骤。
安装apache flink的1.3.2版( wget 从这里提取)。
cd到
flink-1.3.2 ./bin/start-local.sh ,这将启动flink群集。做 cd .. .
使用克隆此回购 git clone 以及 cd 我喜欢这样。 mvn clean package 来建造这个项目。这将创建 target 目录。
../flink-1.3.2/bin/flink run target/cep-monitoring-1.0.jar ,以启动进程。
在单独的终端中,可以这样记录输出(假设您和上一步在同一目录中) tail -f ../flink-1.3.2/log/flink-*-jobmanager-*.out (*将替换为特定的用户详细信息,按tab键自动完成这些信息)。
这是示例输出,

rshah9@bn18-20:~/tools/cep-monitoring-master$ tail -f ../flink-1.3.2/log/flink-rshah9-jobmanager-0-bn18-20.dcs.mcnc.org.out
TemperatureWarning(9, 102.45860162626161)
TemperatureWarning(6, 113.21295716135027)
TemperatureWarning(5, 105.46064102697723)
TemperatureWarning(0, 106.44635415722034)
TemperatureWarning(4, 112.07396748089734)
TemperatureWarning(9, 114.53346561628322)
TemperatureWarning(3, 109.05305417712648)
TemperatureWarning(7, 112.3698094257147)
TemperatureWarning(3, 107.78609416982076)
TemperatureWarning(9, 107.34373990230458)
TemperatureWarning(5, 111.46480675461656)

相关问题