4 回答

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
Scala版本
..所有軟件包都必須使用相同的主要(2.10,2.11,2.12)Scala版本。 考慮以下(不正確) build.sbt
:name := "Simple Project"version := "1.0"libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.11" % "2.0.1", "org.apache.spark" % "spark-streaming_2.10" % "2.0.1", "org.apache.bahir" % "spark-streaming-twitter_2.11" % "2.0.1")
我們用 spark-streaming
對(duì)于Scala2.10,剩下的包用于Scala2.11。一個(gè) 有效文件可能是 name := "Simple Project"version := "1.0"libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.11" % "2.0.1", "org.apache.spark" % "spark-streaming_2.11" % "2.0.1", "org.apache.bahir" % "spark-streaming-twitter_2.11" % "2.0.1")
但是最好是全局指定版本并使用 %%
:name := "Simple Project"version := "1.0"scalaVersion := "2.11.7"libraryDependencies ++= Seq( "org.apache.spark" %% "spark-core" % "2.0.1", "org.apache.spark" %% "spark-streaming" % "2.0.1", "org.apache.bahir" %% "spark-streaming-twitter" % "2.0.1")
同樣,在Maven中: <project> <groupId>com.example</groupId> <artifactId>simple-project</artifactId> <modelVersion>4.0.0</modelVersion> <name>Simple Project</name> <packaging>jar</packaging> <version>1.0</version> <properties> <spark.version>2.0.1</spark.version> </properties> <dependencies> <dependency> <!-- Spark dependency --> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>${spark.version}</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11</artifactId> <version>${spark.version}</version> </dependency> <dependency> <groupId>org.apache.bahir</groupId> <artifactId>spark-streaming-twitter_2.11</artifactId> <version>${spark.version}</version> </dependency> </dependencies></project>
火花版
所有軟件包都必須使用相同的主要SPark版本(1.6、2.0、2.1、.)。 考慮以下(不正確的)構(gòu)建: name := "Simple Project"version := "1.0"libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.11" % "1.6.1", "org.apache.spark" % "spark-streaming_2.10" % "2.0.1", "org.apache.bahir" % "spark-streaming-twitter_2.11" % "2.0.1")
我們用 spark-core
1.6其余組件在Spark2.0中。一個(gè) 有效文件可能是 name := "Simple Project"version := "1.0"libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.11" % "2.0.1", "org.apache.spark" % "spark-streaming_2.10" % "2.0.1", "org.apache.bahir" % "spark-streaming-twitter_2.11" % "2.0.1")
但是最好使用一個(gè)變量: name := "Simple Project"version := "1.0"val sparkVersion = "2.0.1"libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.11" % sparkVersion, "org.apache.spark" % "spark-streaming_2.10" % sparkVersion, "org.apache.bahir" % "spark-streaming-twitter_2.11" % sparkVersion)
同樣,在Maven中: <project> <groupId>com.example</groupId> <artifactId>simple-project</artifactId> <modelVersion>4.0.0</modelVersion> <name>Simple Project</name> <packaging>jar</packaging> <version>1.0</version> <properties> <spark.version>2.0.1</spark.version> <scala.version>2.11</scala.version> </properties> <dependencies> <dependency> <!-- Spark dependency --> <groupId>org.apache.spark</groupId> <artifactId>spark-core_${scala.version}</artifactId> <version>${spark.version}</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_${scala.version}</artifactId> <version>${spark.version}</version> </dependency> <dependency> <groupId>org.apache.bahir</groupId> <artifactId>spark-streaming-twitter_${scala.version}</artifactId> <version>${spark.version}</version> </dependency> </dependencies></project>
星火依賴項(xiàng)中使用的星火版本必須與星火安裝版本相匹配。例如,如果在集群上使用1.6.1,則必須使用1.6.1來(lái)構(gòu)建JAR。小版本的不匹配并不總是被接受的。 用于構(gòu)建JAR的Scala版本必須與用于構(gòu)建已部署的SPark的Scala版本相匹配。默認(rèn)情況下(可下載的二進(jìn)制文件和默認(rèn)構(gòu)建): 星火1.x->Scala2.10 星火2.x->Scala2.11 如果包含在FAT JAR中,則應(yīng)該可以在工作節(jié)點(diǎn)上訪問(wèn)其他包。有許多選擇,包括: 在群集節(jié)點(diǎn)中提交時(shí),應(yīng)包括應(yīng)用程序。 jar
在……里面 --jars
.--jars
主張 spark-submit
-在當(dāng)?shù)胤职l(fā) jar
檔案。 --packages
主張 spark-submit
-從Maven存儲(chǔ)庫(kù)獲取依賴項(xiàng)。

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
添加回答
舉報(bào)