【问题标题】:Run project with Spark and maven [duplicate]使用 Spark 和 Maven 运行项目 [重复]
【发布时间】:2017-02-09 04:04:44
【问题描述】:

我正在尝试运行读取 GML 文件的类 java,我为此使用 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

【问题讨论】:

    标签: java maven apache-spark tinkerpop-blueprint


    【解决方案1】:

    您必须提供包含 TinkerGraph 实现的依赖项。 如果我没记错的话,你需要提供this jar

    然后你像往常一样运行spark-submit,但使用--jars /some/location/blueprints-core-2.6.0.jar

    official documentation中有解释:

    使用 spark-submit 时,应用程序 jar 以及任何 jar 包含在 --jars 选项中的将自动转移到 集群。

    【讨论】:

    • 它的工作原理比 x (y)
    猜你喜欢
    • 2015-12-01
    • 2012-04-08
    • 2021-06-28
    • 2017-05-28
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2017-07-21
    相关资源
    最近更新 更多