我正在尝试运行我的java类来读取GML文件,我使用Tinkerpop和GMLReader来实现这一点,问题是当我尝试使用spark运行它时,它会给我一个异常
我编写了一个简单的测试代码:
public static void main(String[] args) throws IOException {
TinkerGraph graphs = new TinkerGraph();
String in = "/home/salma/Desktop/celegansneural.gml";
GMLReader.inputGraph(graphs, in);
System.out.println(graphs);
}
我用来运行类的命令:
root@salma-SATELLITE-C855-1EQ:/usr/local/spark# ./bin/spark-submit --class graph_example.WordCount --master local[2] ~/workspace/graph_example/target/graph_example-0.0.1-SNAPSHOT.jar
错误:
Exception in thread "main" java.lang.NoClassDefFoundError:
com/tinkerpop/blueprints/impls/tg/TinkerGraph
at graph_example.WordCount.main(WordCount.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: com.tinkerpop.blueprints.impls.tg.TinkerGraph
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 10 more
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
必须提供包含TinkerGraph实现的依赖项。如果我没弄错的话,你需要提供这个罐子
然后像往常一样运行spark submit
,但要使用--jars/some/location/blueprints-core-2.6.0。jar
官方文件对此进行了解释:
使用spark submit时,应用程序jar以及--jars选项中包含的任何jar将自动传输到集群。
我在网上搜索并找到了以下资源,我尝试了这些资源(请参见pom),但无法工作: 1)Spark用户邮件列表:http://apache-spark-user-list.1001560.n3.nabble.com/packaging-a-spark-job-using-maven-td5615.html 2)如何打包spark scala应用程序 我有一个简单的例子来演示这个问题,一个简单的1类项目(
我看到了很多基于maven pom.xml构建文件的spring项目。还有一件奇怪的事情:在没有公共静态void main()方法的情况下构建项目。例如:https://github.com/geowarin/spring-mvc-security。在Spring.io的常用示例中,有一些类带有@SpringBootApplication注释和SpringApplication.Run(appli
我有3个maven项目。项目1,项目2 为此,我在项目2 pom.xml文件中添加了这个 我的pom。Project3的xml是- 在项目3中,我添加了testng。xml文件来运行测试。现在如果我运行这个测试。xml文件,那么我所有的测试用例都成功运行了。如果我尝试使用maven测试运行测试用例,那么它会失败。 我已经在下面的pom文件中包含了testng.xml文件,以便使用maven运行te
问题内容: 这是一个基本问题,我只是不太熟悉Maven多模块结构。说,我有一个Web应用程序。我想将一些模块连接到它(某些服务)。我是否需要仅将其中一个模块(依赖于其他模块)制作为一个Web应用程序,然后运行它?一开始我以为我可以运行整个项目,但是这个选项在我的IDE中是无效的(我现在正在使用NetBeans),这使我认为我应该运行一个类似于主模块的东西(在这种情况下为Web应用程序) )。是这样
问题内容: 这个问题已经在这里有了答案 : Maven Run Project (6个答案) 5年前关闭。 我创建了一个使用Maven构建的简单控制台Java应用程序。有没有一种方法可以使用maven命令从命令行运行主类(不需要任何参数): 问题答案: 尝试使用maven-exec-plugin。从那里: 这将在JVM中运行您的类。您可以用来传递参数。 如果您使用的是Windows,请为和加上引号
上周,我们的团队决定从Netbean迁移到Eclipse,因为我们开发了一些只能在Eclipse上运行的新插件。 首先,项目开始使用来自pom的my maven插件