Apache flink 在远程群集上运行Flink程序
Apache flink 在远程群集上运行Flink程序,apache-flink,Apache Flink,我有一个Apache Flink的程序。我在本地机器上测试并运行了它,一切正常。为了在远程集群上运行该程序,我做了必要的更改,如中所述
我做了以下更改:
以下两点
ExecutionEnvironment env=ExecutionEnvironment.getExecutionEnvironment()
ExecutionEnvironment env=ExecutionEnvironment.createRemoteEnvironment(“taskManagerName”),
波尔图、平
我有一个Apache Flink的程序。我在本地机器上测试并运行了它,一切正常。为了在远程集群上运行该程序,我做了必要的更改,如中所述
我做了以下更改:
以下两点
修复读取输入文件和写入输出所需的路径
从程序中生成一个薄jar,并放入必要的jar
库放在我的项目jar文件之外的文件夹中,名为
myproj.jar
将数据、jar库和myproj.jar复制到集群中
并在群集上远程运行以下命令:
java -cp pathToJarLib \\* -jar myproj.jar
但是,我得到下面的错误,我没有任何线索来解决这个问题。没有相关的日志文件可以帮助我解决此问题
错误:
线程“main”java.lang.NoClassDefFoundError中出现异常:org/apache/flink/api/common/functions/MapFunction
位于java.lang.Class.getDeclaredMethods0(本机方法)
位于java.lang.Class.privateGetDeclaredMethods(Class.java:2570)
位于java.lang.Class.getMethod0(Class.java:2813)
位于java.lang.Class.getMethod(Class.java:1663)
位于sun.launcher.launchelper.getMainMethod(launchelper.java:494)
在sun.launcher.LaunchHelper.checkAndLoadMain(LaunchHelper.java:486)中
原因:java.lang.ClassNotFoundException:org.apache.flink.api.common.functions.MapFunction
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 还有6个
您的类路径显然不完整。尝试通过bin/flink run myproj.jar
提交。这将正确设置类路径