Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Scala对Spark安装的依赖性_Scala_Apache Spark - Fatal编程技术网

Scala对Spark安装的依赖性

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

我刚刚开始使用Spark,所以从Ubuntu虚拟机下载了Hadoop 1(HDP1,CDH3)的
二进制文件,并将其解压缩。没有安装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进行构建