2016-03-03 50 views
2

我絕對不是mvn的專家,但是經過2天左右的攻擊,我只是放棄了。Flink的快速入門不會創建一個合適的fat-jar

我的工作流程:

  1. MVN原型:生成\ -DarchetypeGroupId = org.apache.flink \ -DarchetypeArtifactId =弗林克-快速入門 - 斯卡拉\ -DarchetypeVersion = 0.10.1 \ -DgroupId = org.apache.flink.quickstart \ -DartifactId =弗林克-階項目\ -Dversion = 0.1 \ -Dpackage = org.apache.flink.quickstart \ -DinteractiveMode =假

  2. CD弗林克 - 斯卡拉項目

  3. MVN清潔套裝

這裏是一個生成日誌:https://gist.github.com/zavalit/1e78478ebdda827f3454當我運行

java -jar target/flink-scala-project-0.1.jar 

我得到

異常線程「main」java.lang.NoClassDefFoundError:org/apache/flink/api/scala/ExecutionEnvironment $(org.apache.flink.quickstart.job)$ .main(Job.scala:41) at org.apache.flink.quickstart.Job.main(Job.scala) 導致:java.lang.ClassNotFoundException:org在java.net.URLClassLoader上運行.apache.flink.api.scala.ExecutionEnvironment $ $ 1.run(URLClassLoader.java:366) at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355) at java.security .AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher $ AppClassLoader。 loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 2 more

感謝您的幫助......

回答

3

您正在構建的胖罐不應該在羣集環境之外運行。因此,在羣集環境中運行的所有與Flink相關的依賴項都將從胖jar中排除。

通常對生成的fat jar執行的操作是通過bin/flink run -c org.example.MyJob myFatJar.jar將其提交到本地或遠程羣集。爲了快速啓動本地羣集,您可以運行bin/start-local.sh。這將啓動一個本地羣集,您可以將它提交給作業jar。