CDH 5.13安装spark2

for my darling!

1、前言

 CDH安装的是较新版本的CDH-5.13.0,但是CDH-5.13.0默认支持的还是spark1.6版本。这里需要将spark升级到spark2.x版本,以方便使用spark程序读取kafka0.10.x的数据。根据官网上的介绍可知CDH5.13是支持spark2.x的。这里讲spark2的安装做一个记录。
 首先贴出一些官方的网址,有兴趣的可以去看看:Cloudera发布Apache Spark 2概述(可以在这里面找到安装方法和parcel包的仓库,不过待会我会给出地址和安装方法)
https://www.cloudera.com/documentation/spark2/latest/topics/spark2_installing.html

2、安装准备

  • CSD包下载 http://archive.cloudera.com/spark2/csd/
    CDH 5.13安装spark2_第1张图片
    1.png
  • parcel包下载 http://archive.cloudera.com/spark2/parcels/
    CDH 5.13安装spark2_第2张图片
    2.png

    CDH 5.13安装spark2_第3张图片
    3.png

    注:1、下载parcel包时要下载对应的版本,这里系统使centOS 7,所以下载el7
      2、CSD和parcel包都有cloudera1和cloudera2之分,因此在下载CSD和parcel包时两者版本必须一致。

3、安装spark2

  • 在所有节点进行下面操作

  • 上传CSD包到机器的/opt/cloudera/csd目录。注意如果本目录下有其他的jar包,把删掉或者移到其他目录

  • 修改SPARK_ON_YARN-2.2.0.cloudera1.jar的用户和组
    chown cloudera-scm:cloudera-scm SPARK_ON_YARN-2.2.0.cloudera1.jar

  • 将parcel包上传到机器的/opt/cloudera/parcel-repo目录。注意: 如果有其他的安装包,不用删除 ,但是如果本目录下有其他的重名文件比如manifest.json文件,把它重命名备份掉。然后把那3个parcel包的文件放在这里。

  • 停掉CM和集群,现在将他们停掉。然后运行命令
    service cloudera-scm-agent restart
    service cloudera-scm-server restart

  • 把CM和集群启动起来。然后点击主机->Parcel页面,看是否多了个spark2的选项。如下图,你这里此时应该是分配按钮,点击,等待操作完成后,点击激活按钮


    CDH 5.13安装spark2_第4张图片
    4.png

    CDH 5.13安装spark2_第5张图片
    5.png
  • 激活后,点击你的群集-》添加服务,添加spark2服务。注意,如果你这里看不到spark2服务,就请检查你的CSD包和parcel包是否对应,上面的步骤是否有漏掉。正常情况下,应该是能用了。

4、文件配置

 1、前提交代
  - CDH安装目录 /opt/cloudera/parcels/CDH/
  - SPARK2安装目录 /opt/cloudera/parcels/SPARK2
  - 启动spark2用户名为hadoop
  - 所有配置文件目录为 /etc/
 2、将CDH中spark配置文件拷贝到SPARK2的配置文件中,并配置spark-env.sh文件


#拷贝文件
cp /opt/cloudera/parcels/CDH/etc/spark/conf.dist/* /opt/cloudera/parcels/SPARK2/etc/spark2/conf.dist/
#配置spark-env.sh文件
vim /opt/cloudera/parcels/SPARK2/etc/spark2/conf.dist/spark-env.sh
#添加如下内容
export SPARK_DIST_CLASSPATH=$(hadoop classpath) //指定hadoop class文件目录
export HADOOP_CONF_DIR=/etc/hadoop/conf //指定hadoop配置文件目录


 3、配置启动账户hadoop .bashrc文件


#打开文件
vim /home/hadoop/.bashrc
#添加如下内容
export HADOOP_CONF_DIR=/etc/hadoop_conf
export SPARK_HOME=/opt/cloudera/parcels/SPARK2/lib/spark2
export PATH=$SPARK_HOME/bin:$PATH


 4、在运行spark on yarn程序时会报错,如下

CDH 5.13安装spark2_第6张图片
6.png

查了网上的博客,大多数是说yarn-site.xml文件未配置 yarn.resourcemanager.address 参数。但是在CDH中这个参数已经配置了。直接将 yarn.resourcemanager.address写入程序中
CDH 5.13安装spark2_第7张图片
7.png

仍无法解决问题。找到一篇博客 https://www.cnblogs.com/vikings-blog/p/3918266.html 说是架构问题。在spark的依赖包中含有一个 yarn-default.xml文件。该文件配置了 yarn.resourcemanager.address 参数。那么在spark依赖包中找到 yarn-default.xml文件,该文件在 /opt/cloudera/parcels/CDH/jars/hadoop-yarn-common-2.6.0-cdh5.13.0.jar包中(参考博客中说 yarn-default.xml文件在 spark-core-assembly-0.4-SNAPSHOT.jar中,这里有些不同)。修改该文件的 yarn-default.xml文件


#打开该jar包
vim /opt/cloudera/parcels/CDH/jars/hadoop-yarn-common-2.6.0-cdh5.13.0.jar
#搜索yarn-default.xml文件
/yarn-default.xml
#按快车键进入yarn-default.xml文件,修改参数并保存


CDH 5.13安装spark2_第8张图片
8.png

这里修改为yarn运行所在的节点IP


5、验证

  • 启动spark-shell


    CDH 5.13安装spark2_第9张图片
    9.png
  • 运行spark on yarn程序
    spark-submit
    --class com.bmkp.Main
    --master yarn //这里master必须为 yarn
    --deploy-mode cluster //这里可以有cluster和client两种方式
    --executor-memory 2g
    --num-executors 10
    /data/xu/read_hive-1.0-SNAPSHOT.jar

你可能感兴趣的:(CDH 5.13安装spark2)