2

spark-cassandra-connector を使用して Java API を作成しています。Eclipse で実行しているときは正常に動作しています。次に、実行可能なjarファイルを作成し、コマンドラインから実行すると、次のエラーが発生しました。

15/02/17 14:56:41 INFO spark.HttpServer: Starting HTTP Server
    15/02/17 14:56:42 INFO server.Server: jetty-8.y.z-SNAPSHOT
    15/02/17 14:56:42 INFO server.AbstractConnector: Started SocketConnector@0.0.0.0:58625
    Exception in thread "main" java.lang.reflect.InvocationTargetException
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
    der.java:58)
    Caused by: java.lang.Exception: Could not find resource path for Web UI: org/apache/spark/ui/static    
    at org.apache.spark.ui.JettyUtils$.createStaticHandler(JettyUtils.scala:
    133)
            at org.apache.spark.ui.SparkUI.initialize(SparkUI.scala:70)
            at org.apache.spark.ui.SparkUI.<init>(SparkUI.scala:60)
            at org.apache.spark.ui.SparkUI.<init>(SparkUI.scala:42)
            at org.apache.spark.SparkContext.<init>(SparkContext.scala:222)
            at org.apache.spark.SparkContext.<init>(SparkContext.scala:97)
            at com.netspective.watchtower.bigdata.utils.Config.getSparkContext(Confi
    g.java:32)
            at com.netspective.watchtower.bigdata.main.Main.main(Main.java:17)
            ... 5 more

Eclipse ログと比較したログ ファイルの唯一の違いは、jetty-server のバージョンに関するものです。Eclipse では、jetty サーバーのバージョンを 8.1.14 v232 として識別します。これは、jetty サーバーまたはその他の理由によるものですか? 私はここで完全に立ち往生しています。

私のsparkContext構成は次のとおりです

  conf.setAppName("Java API demo");
        conf.setMaster("local[*]");
4

1 に答える 1

3

Spark は "getResource" を使用して、パッケージ化されたファイルを読み取ります。ここでは、Web UI 用のいくつかの静的ファイルを読み込もうとしますが、ファイルが jar にパッケージ化されている場合は明らかに機能しません。代わりに、Eclipse が最初のオプションとして提供する jar に抽出する必要があります。 1

于 2016-06-13T20:03:42.700 に答える