我试图理解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
我尝试了不同的方法来给出这里描述的类路径,但是得到了相同的错误。有人能指出我运行程序的错误吗?
2条答案
按热度按时间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
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键自动完成这些信息)。这是示例输出,