【问题标题】:How to install custom Spark version in Cloudera如何在 Cloudera 中安装自定义 Spark 版本
【发布时间】:2016-06-05 23:57:06
【问题描述】:

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

但是,CDH 5.5 是 Spark 1.5.0 附带的,不能很容易地更改。

人们提到“只需手动下载”自定义版本的 spark。但是如何通过 Cloudera 管理这个“自定义”火花版本,以便我可以在整个集群中分发它?或者,它是否需要完全独立于 Cloudera 进行操作和配置?

感谢您的帮助和解释。

【问题讨论】:

标签: hadoop apache-spark cloudera


【解决方案1】:

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

在做之前我们需要确定的步骤:

  • 您在 CM 中配置了 YARN。之后,您可以使用 spark-submit 将您的应用程序作为 YARN 应用程序运行。请参考此link。它将用于像任何其他 YARN 应用程序一样工作。
  • 不需要安装 spark,你可以运行你的应用程序。

【讨论】:

    【解决方案2】:

    在 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 更改为 yarn

    $ 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 版本和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
    

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 2019-04-22
      • 2017-03-23
      • 1970-01-01
      相关资源
      最近更新 更多