当前位置: 首页 > 知识库问答 >
问题:

何时使用SPARK_CLASSPATH或sparkcontext.addjar

滕璞瑜
2023-03-14

我正在使用一个独立的星火集群,一个主和两个工人。我真的不明白如何明智地使用SPARK_CLASSPATH或sparkcontext.addjar。我两个都试过了,看起来addJar并不像我以前认为的那样起作用。

在我的例子中,我尝试在闭包中或外部使用一些joda-time函数。如果我将SPARK_CLASSPATH设置为joda-time jar的路径,那么一切正常。但如果我删除SPARK_CLASSPATH并在程序中添加:

JavaSparkContext sc = new JavaSparkContext("spark://localhost:7077", "name", "path-to-spark-home", "path-to-the-job-jar");
sc.addJar("path-to-joda-jar");

它不再起作用了,尽管在日志中我可以看到:

14/03/17 15:32:57 INFO SparkContext: Added JAR /home/hduser/projects/joda-time-2.1.jar at http://127.0.0.1:46388/jars/joda-time-2.1.jar with timestamp 1395066777041
Caused by: java.lang.NoClassDefFoundError: org/joda/time/DateTime
    at com.xxx.sparkjava1.SimpleApp.main(SimpleApp.java:57)
    ... 6 more
Caused by: java.lang.ClassNotFoundException: org.joda.time.DateTime
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)

共有1个答案

盖泽宇
2023-03-14

sparkcontext.addjar以及add_jars环境变量在0.9中被破坏。它以前是按照0.8.x中的文档工作的,而修复程序已经提交到master,所以它应该在下一个版本中使用。现在,您既可以使用Jira中描述的解决方案,也可以进行修补Spark构建。

参见相关邮件列表讨论:http://mail-archives.apache.org/mod_mbox/spark-user/201402.mbox/%3c5234e529519f4320a322b80fbcf5bda6@gmail.com%3e

Jira问题:https://spark-project.atlassian.net/plugins/servlet/mobile#issue/spark-1089

 类似资料:
  • 我需要弄清楚一些事情。我一直在寻找这个问题的答案,但我似乎找不到一个好的答案来回答我的具体问题(例如,这个问题是对答案的蚕食:servlet和web服务之间的区别)。 据我所知,在“面向MVC”的web应用程序中,有不同的方法可以实现“请求处理”,也就是“控制器”,其中两种方法是: null null [编辑]:强调的关键词

  • 我是Java GUI编程新手,对何时使用哪些工具有几个问题。 当我的应用程序运行时,会出现一个JFrame,它使用内容面板显示用户3个按钮。我希望每个按钮都能显示不同的屏幕,但不能在单独的窗口中打开。为了实现这一点,我目前正在处理当前的JFrame,并用新内容创建一个新的JFrame。以下是我的问题。 > 我应该为每一次按钮点击创建一个新的JPanel,而不是创建一个新的JFrame吗?如果这个问

  • 问题内容: 我已经开始学习Java的并发和线程。我知道同步的基础知识(即它的作用)。从概念上讲,我知道它提供了对Java中具有多个线程的共享资源的互斥访问。但是,当面对下面的示例时,让我感到困惑的是同步它是否是一个好主意。我知道代码的关键部分应该同步,并且不应过度使用此关键字,否则会影响性能。 问题答案: 假设每个线程通过 不同的数组, 则不需要同步,因为其余变量是局部的。 相反,如果您触发所有调

  • Spring Security文档声明 18.3何时使用CSRF保护 什么时候应该使用CSRF保护?我们的建议是,对正常用户可以通过浏览器处理的任何请求使用CSRF保护。如果只创建非浏览器客户端使用的服务,则可能需要禁用CSRF保护。 但很明显,当您没有加密通信(即没有SSL)时,它允许一些场景。我想知道更多关于在什么情况下你仍然希望使用CSRF保护。

  • 我的应用程序(最小API14)使用带有3个选项卡的ActionBar。选项卡是:i。输入数据(约10个片段)ii。管理数据(15个片段)三.查看数据(8个片段)。每个选项卡都有一个默认片段,但根据用户的选择会有多个片段。 我希望用户能够在3个选项卡之间滑动(通过滑动内容),因此我需要使用ViewPager和兼容性库V4。 我得到的建议(经过大量研究)是使用一个MainActivity,它承载Act

  • 问题内容: 只是想了解在AngularJS中使用ngView和ngInclude的方法的确切区别。什么时候在另一个之上使用是正确的?谢谢。 问题答案: ngView与路由配合使用,并且对于角度SPA来说至关重要。它通常用于包含网站的主要内容,即每当用户单击链接时,页眉和页脚之间的位置就会改变。它与路由的集成意味着更改ngView内容也会更改控制器(取决于您的配置)。 ngInclude是通用的包含