2017-03-07 223 views
0

Spark downloads page,如果我下载了tar file for v2.0.1,我发现它包含一些我认为可以包含在我的应用中的jar。我在哪里可以找到Spark 1.6中的jar文件夹?

如果我下载了tar file for v1.6.2而不是,我没有在那里找到jars文件夹。是否有我应该从该网站使用的备用包类型?我目前选择默认(预先为Hadoop 2.6构建)。或者,我可以在哪里找到那些Spark罐子 - 我应该从http://spark-packages.org中单独获得它们中的每一个吗?

这里是罐子的指示帮我要用:

  • Hadoop的共同
  • 火花核心
  • 火花CSV
  • 火花SQL
  • 单义的解析器
  • 火花催化剂
  • json4s-core
+1

星火2之前,默认情况下,有一个'火花组装的只是一个怪物* .jar'下'$ SPARK_HOME/lib'包含所有的依赖关系。如果你想要单独的JAR,你必须重新编译Spark。玩的开心! –

+1

另外'spark-csv'是一个单独的下载*(没有嵌入到V2之前的Spark代码库中)并且需要Apache'commons-csv'。 –

+0

谢谢!谨慎添加这个答案,以便我可以关闭它? – sudheeshix

回答

2

Sparks将其运行时间的方式从V1更改为V2。

  • 在V2,默认情况下,你必须多个$SPARK_HOME/jars
  • 在V1的JAR文件,默认情况下,只是有一个 大规模spark-assembly*.jar$SPARK_HOME/lib根据该 包含了所有的依赖关系。

我相信你可以改变默认的行为,但这需要重新编译你自己星火...

而且还约spark-csv具体为:

  • 在V2,CSV文件格式本身是由SparkSQL支持的
  • 在V1中,您必须从Spark-Packages.orgcommons-csvCommons.Apache.org下载spark-csv(for Scala 2.10),并将两个JAR添加到您的CLASSP ATH
    (与--jars命令行,或用道具spark.driver.extraClassPath +指令sc.addJar()如果在命令行中没有出于某种原因)
    ...和语法是比较烦琐,太


从摘录香草 $SPARK_HOME/bin/spark-class如火花的2.1.x(大大简化)

#查找火花的罐子

SPARK_JARS_DIR="${SPARK_HOME}/jars" 
    LAUNCH_CLASSPATH="$SPARK_JARS_DIR/*" 

而且从Spark 1.6开始。X

#查找组装罐子

ASSEMBLY_DIR="${SPARK_HOME}/lib" 
    ASSEMBLY_JARS="$(ls -1 "$ASSEMBLY_DIR" | grep "^spark-assembly.*hadoop.*\.jar$" || true)" 
    SPARK_ASSEMBLY_JAR="${ASSEMBLY_DIR}/${ASSEMBLY_JARS}" 
    LAUNCH_CLASSPATH="$SPARK_ASSEMBLY_JAR" 
+0

in spark 2.2.0在'$ SPARK_HOME/jars'中放入罐子似乎可以通过终端将罐子提供给'spark-shell'和'pyspark',但是当我提交一个spark应用程序时,这些罐子没有被拾取,我获得ClassNotFound excpt,在构建我的spark上下文时是否需要指定其他任何内容? – perrohunter

+0

你的意思是什么_“提交一个火花应用程序”_ >>是否意味着'spark-submit' shell在许多其他事物中调用'spark-class'?否则,你必须对整个混乱进行逆向工程 - 祝你好运。 –

相关问题