簡體   English   中英

在遠程群集上運行Flink程序

[英]Running Flink Program on a Remote Cluster

我在Apache Flink有一個程序。 我測試並在本地機器上運行它,一切正常。 要在遠程群集上運行程序,我按照Apache Flink官方網站中的說明進行了必要的更改。

我做了以下更改:

  1. 以下兩點

    • ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    • ExecutionEnvironment env = ExecutionEnvironment.createRemoteEnvironment("taskManagerName",
      portNo,paralelismNo);
  2. 修復讀取輸入文件和寫入輸出的必要路徑。

  3. 從程序中生成一個薄jar,並將必要的jar庫放入一個名為myproj.jar項目jar文件之外的文件夾中。

  4. 將數據和jar庫以及myproj.jar復制到集群中,並在集群上遠程運行以下命令:

      java -cp pathToJarLib \\\\* -jar myproj.jar 

但是,我得到以下錯誤,我沒有任何線索來解決這個問題。 沒有相關的日志文件可以幫助我解決此問題。

錯誤:

線程“main”中的異常java.lang.NoClassDefFoundError:org / apache / flink / api / common / functions / MapFunction at java.lang.Class.getDeclaredMethods0(Native Method)at java.lang.Class.privateGetDeclaredMethods(Class.java: 2570)at java.lang.Class.getMethod0(Class.java:2813)at java.lang.Class.getMethod(Class.java:1663)at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)at sun。 launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)引起:java.lang.ClassNotFoundException:org.apache.flink.api.common.functions.MapFunction at java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)java.security.AccessController.doPrivileged(Native Method),java.net.URLClassLoader.findClass(URLClassLoader.java:354),位於java.lang.ClassLoader。 sunClass(ClassLoader.java:425)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)at java.lang.ClassLoader.loadClass(ClassLoader.java:358)... 6更多

您的類路徑顯然不完整。 嘗試通過bin/flink run myproj.jar 這樣可以正確設置類路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM