簡體   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