繁体   English   中英

Java NoClassDefFoundError:Apache Flink复杂事件处理

[英]Java NoClassDefFoundError : Apache Flink Complex Event Processing

我正在尝试了解Apache Flink CEP程序,以按照Flink官方文档中的描述监视数据中心中的机架温度。 但是当我按照以下步骤使用mvn clean package创建jar并尝试使用命令执行该包时

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

我试着给予classpath中所描述的不同变化在这里 ,但得到了同样的错误。 有人可以指出我在运行程序时的错误吗?

要将作业提交到本地Flink群集:

  1. 运行Flink。

/path/to/flink-1.4.0/bin/start-local.sh

  1. 提交工作。

/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的

cep示例使用flink版本1.3.2。 因此,这是运行它的步骤。

  1. 安装1.3.2版的Apache Flink。 wget从它这里和提取它)。
  2. cd进入flink-1.3.2
  3. ./bin/start-local.sh ,这将启动flink集群。 cd ..
  4. 使用git clonecd克隆该仓库
  5. mvn clean package来构建项目。 这将创建target目录。
  6. 运行../flink-1.3.2/bin/flink run target/cep-monitoring-1.0.jar ,以启动该过程。
  7. 在单独的终端中,可以这样记录输出(假设您与上一步位于同一目录中) 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM