[英]Scala dependency on Spark installation
Spark包含Scala吗? 如果是,库/二进制文件在哪里?
项目配置放在project/
文件夹中。 我的情况是:
$ ls project/
build.properties plugins.sbt project SparkBuild.scala target
当您执行sbt/sbt assembly
,它会下载适当版本的Scala以及其他项目依赖项。 签出文件夹target/
例如:
$ ls target/
scala-2.9.2 streams
请注意,Scala版本对我来说是2.9.2。
为了在其他模式(分布式)中运行Spark,我是否需要在所有节点上安装Scala?
是。 您可以按Spark文档中的描述创建单个程序集jar
如果您的代码依赖于其他项目,则需要确保它们也存在于从属节点上。 一种流行的方法是创建一个包含代码及其依赖项的程序集jar(或“uber”jar)。 sbt和Maven都有汇编插件。 创建程序集jar时,将Spark本身列为提供的依赖项; 它不需要捆绑,因为它已经存在于奴隶上。 一旦你有一个组装的jar,把它添加到SparkContext,如下所示。 在创建SparkContext时,也可以逐个提交您的从属jar。
Praveen -
现在检查一下fat-master jar。
/SPARK_HOME/assembly/target/scala-2.9.3/spark-assembly_2.9.3-0.8.0-incubating-hadoop1.0.4.jar
这个jar包含在所有scala二进制文件+ spark二进制文件中。
您可以运行,因为运行spark-shell时会将此文件添加到CLASSPAH中
检查这里:运行spark-shell> http:// machine:4040> environment> Classpath条目
如果您下载了pre build spark,那么您不需要在节点中使用scala,只需在节点中的CLASSAPATH中使用此文件即可。
注意:删除我发布的最后一个答案,因为它可能会误导某个人。 抱歉:)
您确实需要Scala才能在所有节点上使用。 但是,通过make-distribution.sh进行二进制分发,不再需要在所有节点上安装 Scala。 请记住, 安装 Scala(运行REPL所必需的)与仅将 Scala 打包为另一个jar文件之间的区别。
另外,如文件中所述:
# The distribution contains fat (assembly) jars that include the Scala library,
# so it is completely self contained.
# It does not contain source or *.class files.
因此,当您使用make-distribution.sh时,Scala确实会出现这种情况 。
从spark 1.1开始,没有SparkBuild.scala您需要在pom.xml中进行更改并使用Maven构建
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.