2014-01-24 35 views
4

我剛剛開始使用Spark,因此從here下載了for Hadoop 1 (HDP1, CDH3)二進制文件,並將其解壓縮到Ubuntu VM上。在沒有安裝Scala的情況下,我能夠執行Spark交互式shell的Quick Start指南中的示例。Scala對Spark的依賴/安裝

  1. Spark是否包含在Scala中?如果是,那麼庫/二進制文件在哪裏?
  2. 對於在其他模式(分佈式)下運行Spark,是否需要在所有節點上安裝Scala?

作爲一個方面說明,我觀察到Spark是開源項目最好的文檔之一。

回答

2

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

這個罐子包括所有階二進制+火花二進制文件。

你能夠運行,因爲當您運行這裏火花殼

檢查該文件添加到您的CLASSPAH:運行火花殼>的http://機:4040>環境>類路徑項

如果你下載了預構建的spark,那麼你不需要在節點中有scala,只需要在CLASSAPATH中的這個文件在節點中就足夠了。

注意:刪除了我發佈的最後一個答案,因爲它可能會誤導某人。對不起:)

4

Spark是否包含在Scala中?如果是,那麼庫/二進制文件在哪裏?

項目配置被放置在project/文件夾中。我在我的情況下,那就是:

$ ls project/ 
build.properties plugins.sbt project SparkBuild.scala target 

當你做sbt/sbt assembly,它的下載與其他項目的依賴關係沿着斯卡拉的相應版本。結帳的文件夾target/例如:

$ ls target/ 
scala-2.9.2 streams 

注意,Scala的版本是2.9.2我。

對於在其他模式下運行Spark(分佈式),我是否需要在所有節點上安裝Scala?

是的。您可以在Spark documentation

描述如果你的代碼依賴於其它項目,你將需要確保他們也存在從節點上創建一個單一的組裝罐子。一種流行的方法是創建一個包含代碼及其依賴關係的組裝jar(或「超級」jar)。 sbt和Maven都有組裝插件。在創建組件jar時,將Spark本身列爲提供的依賴項;它不需要捆綁,因爲它已經存在於從屬設備上。一旦你有一個組裝的jar,將它添加到SparkContext中,如下所示。創建SparkContext時,也可以逐個提交依賴的jar。

0

您確實需要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

0

從火花1.1開始,沒有SparkBuild.scala 您可以在pom.xml中進行更改並使用Maven構建