Scala对Spark安装的依赖性
我刚刚开始使用Spark,所以从Ubuntu虚拟机下载了Hadoop 1(HDP1,CDH3)的Scala对Spark安装的依赖性,scala,apache-spark,Scala,Apache Spark,我刚刚开始使用Spark,所以从Ubuntu虚拟机下载了Hadoop 1(HDP1,CDH3)的二进制文件,并将其解压缩。没有安装Scala,我就能够从Spark interactive shell执行指南中的示例 Scala是否包含Spark?如果是,库/二进制文件在哪里 要在其他模式(分布式)下运行Spark,是否需要在所有节点上安装Scala 作为补充说明,我注意到Spark拥有关于开源项目的最好文档之一。Praveen- 现在检查脂肪主罐 /SPARK_HOME/assembly/tar
二进制文件,并将其解压缩。没有安装Scala,我就能够从Spark interactive shell执行指南中的示例
Scala是否包含Spark?如果是,库/二进制文件在哪里
要在其他模式(分布式)下运行Spark,是否需要在所有节点上安装Scala
作为补充说明,我注意到Spark拥有关于开源项目的最好文档之一。Praveen-
现在检查脂肪主罐
/SPARK_HOME/assembly/target/scala-2.9.3/SPARK-assembly_2.9.3-0.8.0-Cubating-hadoop1.0.4.jar
这个jar包含所有scala二进制文件+spark二进制文件
您可以运行,因为在运行spark shell时,此文件已添加到CLASSPAH中
检查这里:运行spark shell>http://machine:4040>environment>Classpath条目
如果您下载了预构建spark,那么您不需要在节点中使用scala,只需在节点中的CLASSAPATH中使用这个文件就足够了
注意:删除了我发布的最后一个答案,因为它可能会误导某些人。抱歉:)Scala附带Spark吗?如果是,库/二进制文件在哪里?
项目配置位于project/
文件夹中。我的情况是:
$ ls project/
build.properties plugins.sbt project SparkBuild.scala target
当您执行sbt/sbt程序集时,它会下载相应版本的Scala以及其他项目依赖项。签出文件夹target/
,例如:
$ ls target/
scala-2.9.2 streams
请注意,Scala版本对我来说是2.9.2
要在其他模式(分布式)下运行Spark,是否需要在所有节点上安装Scala?
对。您可以创建单个程序集jar,如中所述
如果代码依赖于其他项目,则需要确保它们也存在于从属节点上。一种流行的方法是创建一个包含代码及其依赖项的程序集jar(或“uber”jar)。sbt和Maven都有汇编插件。创建程序集JAR时,将Spark本身列为提供的依赖项;它不需要捆绑,因为它已经存在于从机上。组装好jar后,将其添加到SparkContext,如下所示。在创建SparkContext时,也可以逐个提交从属JAR
您确实需要Scala在所有节点上都可用。然而,通过二进制分发,不再需要在所有节点上安装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进行构建