2016-02-23 71 views
0

我是Spark,Hadoop和Cloudera的新手。我們需要使用Spark的特定版本(1.5.2),並且還需要使用Cloudera進行集羣管理,也適用於Spark。如何在Cloudera中安裝自定義Spark版本

但是,CDH 5.5自帶Spark 1.5.0,不能很容易地更改。

人們提到「手動下載」自定義版本的火花。但是,如何管理Cloudera的這個「自定義」Spark版本,以便我可以將其分佈到集羣中?或者,它是否需要與Cloudera完全分開運營和配置?

感謝您的幫助和解釋。

+0

https://www.linkedin.com/pulse/running-spark-2xx-cloudera-hadoop-distro-cdh-deenar-toraskar- CFA – Maziyar

回答

1

是的,它可以運行任何Apache Spark版本。

步驟,我們需要做之前,爲了確保:

  • 您已在CM配置紗。之後,您可以使用spark-submit將您的應用程序作爲YARN應用程序運行。請參閱此link。它將用於像任何其他YARN應用程序一樣工作。
  • 安裝spark不是強制性的,你可以運行你的應用程序。
0

在YARN下,您可以使用任何版本的Spark運行任何應用程序。畢竟,Spark是一堆庫,所以你可以打包你的jar文件並把它發送給YARN。但是還有一些額外的小任務需要完成。

在以下link,dlb8提供了一個任務列表,用於在安裝時使用先前版本運行Spark 2.0。只需相應地更改版本/路徑。

查找CDH和Hadoop集羣上運行使用

$ hadoop version 
Hadoop 2.6.0-cdh5.4.8 

下載星火的版本,並提取來源。預先構建的Spark二進制文件應該可以與大多數CDH版本一起使用,除非在CDH版本中有自定義修復,在這種情況下,您可以使用spark-2.0.0-bin-without-hadoop.tgz。 (可選)您還可以通過在shell打開分發目錄,並使用CDH和Hadoop版本步驟運行以下命令1

$ ./dev/make-distribution.sh --name建設星火定製火花-tgz -Psparkr -Phadoop-2.6 -Pive -Prive-thrift服務器-Pyarn

注意:使用Spark 2.0時,默認構建使用Scala版本2.11。如果您需要堅持使用Scala 2.10,請使用-Dscala-2.10屬性或 $ ./dev/change-scala-version.sh 2.10 請注意,-Phadoop-provided使配置文件可以在不包含Hadoop生態系統的情況下構建程序集Cloudera提供的依賴關係。

提取tgz文件。

$tar -xvzf /path/to/spark-2.0.0-bin-hadoop2.6.tgz 

CD插入自定義Spark分佈,並通過從當前的Spark版本

$ cp -R /etc/spark/conf/* conf/ 
$ cp /etc/hive/conf/hive-site.xml conf/ 

變化SPARK_HOME複製配置配置自定義星火分佈點與到文件夾的火花2.0分佈

從火花火花defaults.conf
$ sed -i "s#\(.*SPARK_HOME\)=.*#\1=$(pwd)#" conf/spark-env.sh 

變化spark.master紗線從紗線客戶

$ sed -i 's/spark.master=yarn-client/spark.master=yarn/' conf/spark- 

defaults.conf

刪除spark.yarn.jar defaults.conf

$ sed '-i /spark.yarn.jar/d' conf/spark-defaults.conf 

最後測試新的Spark安裝:

$ ./bin/run-example SparkPi 10 --master yarn 
$ ./bin/spark-shell --master yarn 
$ ./bin/pyspark 

更新log4j.properties打壓惱人的警告。以下內容添加到CONF/log4j.properties

echo "log4j.logger.org.spark_project.jetty=ERROR" >> conf/log4j.properties 

然而,它可以適應於相對,由於底線是「上的安裝使用火花版本爲不同的版本」。 如果你沒有對付1.x中這是更簡單 - 2.x版的改變,因爲你並不需要注意的斯卡拉版本的變化和assembly approach的。

我測試了它在CDH5.4安裝設置1.6.3和它工作得很好。我與 「spark.yarn.jars」 選項做到了:

#### set "spark.yarn.jars" 
$ cd $SPARK_HOME 
$ hadoop fs mkdir spark-2.0.0-bin-hadoop 
$ hadoop fs -copyFromLocal jars/* spark-2.0.0-bin-hadoop 
$ echo "spark.yarn.jars=hdfs:///nameservice1/user/<yourusername>/spark-2.0.0-bin-hadoop/*" >> conf/spark-defaults.conf