我是Spark,Hadoop和Cloudera的新手。我们需要使用Spark的特定版本(1.5.2),并且还要求使用Cloudera进行集群管理,也需要使用Spark。
然而,CDH 5.5附带Spark 1.5.0并且无法轻易更改。
人们提到"只需下载"手动定制版本的火花。但是如何管理这个" custom" Cloudera的spark版本,所以我可以在集群中分发它?或者,它是否需要与Cloudera完全分开进行操作和配置?
感谢您提供任何帮助和解释。
答案 0 :(得分:1)
是的,可以运行任何Apache Spark版本。!!
在执行此操作之前我们需要确定的步骤:
答案 1 :(得分:0)
在YARN下,您可以使用任何版本的Spark运行任何应用程序。毕竟,Spark是一堆库,所以你可以用你的依赖包装你的jar并将它发送给YARN。但是,还有一些额外的小任务需要完成。
在以下link中, dlb8 提供了在具有先前版本的安装中运行Spark 2.0所要完成的任务列表。只需相应地更改版本/路径。
使用
查找在群集上运行的CDH和Hadoop版本
$ hadoop version
Hadoop 2.6.0-cdh5.4.8
下载Spark并提取源代码。预构建的Spark二进制文件应该与大多数CDH版本一起使用,除非您的CDH版本中有自定义修复,在这种情况下您可以使用spark-2.0.0-bin-without-hadoop.tgz。 (可选)您还可以通过打开shell中的分发目录并使用步骤1中的CDH和Hadoop版本运行以下命令来构建Spark
$ ./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.6 -Phive -Phive-thriftserver -Pyarn
注意:使用Spark 2.0,默认构建使用Scala版本2.11。如果您需要坚持使用Scala 2.10,请使用-Dscala-2.10属性或 $ ./dev/change-scala-version.sh 2.10 请注意,-Phadoop-provided使配置文件能够构建程序集,而不包括Cloudera提供的Hadoop生态系统依赖性。
提取tgz文件。
$tar -xvzf /path/to/spark-2.0.0-bin-hadoop2.6.tgz
cd进入自定义Spark发行版,并通过从当前Spark版本
复制配置来配置自定义Spark发行版
$ cp -R /etc/spark/conf/* conf/
$ cp /etc/hive/conf/hive-site.xml conf/
将SPARK_HOME更改为指向具有Spark 2.0分发的文件夹
$ sed -i "s#\(.*SPARK_HOME\)=.*#\1=$(pwd)#" conf/spark-env.sh
在spark-defaults.conf中将spark.master更改为yarn-client的纱线
$ sed -i 's/spark.master=yarn-client/spark.master=yarn/' conf/spark-
defaults.conf
从spark-defaults.conf中删除spark.yarn.jar
$ 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
然而,它可以适应相反的情况,因为底线是在具有不同版本的安装上使用Spark版本"。 如果您不必处理1.x - 2.x版本更改,则更简单,因为您不需要关注scala版本和{{{}的更改3}}
我在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