我正在使用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 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="41122e222a2435022e2f2f2422352e3301716f716f716f71" rel="noreferrer noopener nofollow">[email protected]</a>: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 。但在其上方标识为 8.y.z SNAPSHOT。 这是因为jetty服务器还是其他原因?我完全被困在这里了。
我的sparkContext配置如下
conf.setAppName("Java API demo");
conf.setMaster("local[*]");
最佳答案
Spark 使用“getResource”来读取与其打包的文件。这里它尝试为 Web UI 读取一些静态文件,如果这些文件被打包到 jar 中,这显然不起作用。相反,必须将它们提取到 jar 中,这是 Eclipse 提供的第一个选项:
关于java - 找不到 Web UI 的资源路径 : org/apache/spark/ui/static While creating a Spark application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28559018/