我正在尝试使用Flink运行示例程序。我使用
下载了示例项目 mvn package && java -cp target/test-1.0-SNAPSHOT.jar adfin.WordCount
然后我在终端上运行以下命令
public class TestThread implements Runnable {
@Override
public void run() {
try {
Thread.sleep(20000);
} catch (InterruptedException ex) {
}
}
}
public void test() throws InterruptedException {
Runnable r = new TestThread();
Thread t = new Thread(r);
t.start();
// No it hasn't!
//System.out.println("Hey the thread has ended");
t.join();
// It has now!
System.out.println("Hey the thread has ended");
}
我收到以下错误
线程“main”中的异常java.lang.NoClassDefFoundError:org / apache / flink / api / common / typeinfo / TypeInformation 在adfin.WordCount.main(WordCount.scala) 引起:java.lang.ClassNotFoundException:org.apache.flink.api.common.typeinfo.TypeInformation at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331) 在java.lang.ClassLoader.loadClass(ClassLoader.java:357)
我尝试将库从默认的0.8.1更新到1.0.0,但这并没有改变任何东西。我想可能还有一个额外的罐子。我可以帮忙吗?
答案 0 :(得分:5)
示例项目的Maven配置使用provided
范围内的flink依赖项。使用mvn package
命令编译的jar文件构建为提交到flink集群,而不是以独立模式运行,因此它不包括flink jar(因此NoClassDefFoundError
异常)。将flink库包含在类路径中,命令运行正常。