如何在Cloudera

时间:2016-02-23 22:28:44

标签: hadoop apache-spark cloudera

我是Spark,Hadoop和Cloudera的新手。我们需要使用Spark的特定版本(1.5.2),并且还要求使用Cloudera进行集群管理,也需要使用Spark。

然而,CDH 5.5附带Spark 1.5.0并且无法轻易更改。

人们提到"只需下载"手动定制版本的火花。但是如何管理这个" custom" Cloudera的spark版本,所以我可以在集群中分发它?或者,它是否需要与Cloudera完全分开进行操作和配置?

感谢您提供任何帮助和解释。

2 个答案:

答案 0 :(得分:1)

是的,可以运行任何Apache Spark版本。!!

在执行此操作之前我们需要确定的步骤:

  • 您在CM中配置了YARN。之后,您可以使用spark-submit作为YARN应用程序运行您的应用程序。请参阅此link。它将用于像任何其他YARN应用程序一样工作。
  • 安装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