Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 何时使用SPARK_类路径或SparkContext.addJar_Apache Spark - Fatal编程技术网

Apache spark 何时使用SPARK_类路径或SparkContext.addJar

Apache spark 何时使用SPARK_类路径或SparkContext.addJar,apache-spark,Apache Spark,我使用一个独立的spark群集,一个主群集和两个辅助群集。 我真的不明白如何明智地使用SPARK_CLASSPATH或SparkContext.addJar。我两个都试过了,看起来addJar不像我以前认为的那样工作了 在我的例子中,我尝试在闭包或外部使用一些joda时间函数。如果我将SPARK_类路径设置为joda时间罐的路径,则一切正常。但是如果我删除SPARK_类路径并添加到我的程序中: JavaSparkContext sc = new JavaSparkContext("spark:/

我使用一个独立的spark群集,一个主群集和两个辅助群集。 我真的不明白如何明智地使用SPARK_CLASSPATH或SparkContext.addJar。我两个都试过了,看起来addJar不像我以前认为的那样工作了

在我的例子中,我尝试在闭包或外部使用一些joda时间函数。如果我将SPARK_类路径设置为joda时间罐的路径,则一切正常。但是如果我删除SPARK_类路径并添加到我的程序中:

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)
我曾经假设SPARK_CLASSPATH正在为作业的驱动程序部分设置类路径,SparkContext.addJar正在为执行器设置类路径,但它似乎不再正确


有人比我更清楚吗?

SparkContext.addJar
在0.9中被破坏,并且
ADD\u JARS
环境变量也被破坏。它过去的工作方式与0.8.x中所述的一样,并且该修复程序已经提交给master,因此预计将在下一个版本中使用。现在,您可以使用Jira中描述的解决方法,也可以制作修补的Spark构建

请参阅相关邮件列表讨论:


Jira问题:

SPARK\u类路径自SPARK 1.0+以来已被弃用。您可以在文件
spark defaults.conf
内或使用spark提交标志以编程方式将JAR添加到类路径中


好的,这是一个bug,解决方法是使用SPARK\u类路径。谢谢。
SPARK\u类路径
自SPARK 1.0+以来已被弃用。试试这个已经回复的帖子。这提供了很好的描述。