在我的CDH5.11.1的集群中,默认已经安装的spark是1.6版本,这里需要将其升级为spark2.1版本。经查阅官方文档,发现spark1.6和2.x是可以并行安装的,也就是说可以不用删除默认的1.6版本,可以直接安装2.x版本,它们各自用的端口也是不一样的。我尝试了安装spark2.0版本和spark2.1版本,均告成功。这里做一下安装spark2.1版本的步骤记录。
Cloudera发布Apache Spark 2概述(可以在这里面找到安装方法和parcel包的仓库,不过待会我会给出地址和安装方法):https://www.cloudera.com/documentation/spark2/latest/topics/spark2_installing.html
Cloudera Manager及5.11版本的介绍:
https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_parcels.html#cmug_topic_7_11_5__section_sd4_bzx_bm
所需软件
①csd包:http://archive.cloudera.com/spark2/csd/
下载版本如下:
②parcel包:http://archive.cloudera.com/spark2/parcels/2.1.0.cloudera1/
注意: SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel.sha1 下载下来之后将后缀改为.sha
说明:
下载对应版本的包,我的CentOS7,所以下载el7的包,若是CentOS6,就要下el6的包。
特别注意,如果你安装spark2.1,按照上面下载就是了,注意一下操作系统的版本;如果你不打算安装spark2.1,想安装其他版本,比如2.0,那么一定要注意下面的事项:
如果你仔细浏览过这些路径,会发现下图中,csd和parcel包会有.clouderal1和.clouderal2之分,和2.0与2.1版本之分,那么在下载parcel时也要注意,下载对应的包。即如果下载到的是.clouderal1的csd包,下载parcel包也要下载文件名中是.clouderal1的包,不能下载.clouderal2的包,同时csd2.0的包也不能用于parcel2.1的包,不然很可能安不上
1.安装前可以停掉集群和Cloudera Management Service,也可以不停,但是待会还是要停止重启的。
2.下面的操作在Cloudera Manager Server节点进行。
3.上传CSD包到机器的/opt/cloudera/csd目录,并且修改文件的用户和组。注意如果本目录下有其他的jar包,把删掉或者移到其他目录
[root@server cloudera]# cd csd/
[root@server csd]# ll
总用量 16
-rw-r--r-- 1 root root 16109 3月 14 09:12 SPARK2_ON_YARN-2.1.0.cloudera1.jar
[root@server csd]# chown cloudera-scm:cloudera-scm SPARK2_ON_YARN-2.1.0.cloudera1.jar
[root@server csd]# ll
总用量 16
-rw-r--r-- 1 cloudera-scm cloudera-scm 16109 3月 14 09:12 SPARK2_ON_YARN-2.1.0.cloudera1.jar
[root@server csd]# chmod 644 SPARK2_ON_YARN-2.1.0.cloudera1.jar
[root@server csd]# ll
总用量 16
-rw-r--r-- 1 cloudera-scm cloudera-scm 16109 3月 14 09:12 SPARK2_ON_YARN-2.1.0.cloudera1.jar
4.上传parcel包到机器的/opt/cloudera/parcel-repo目录下。注意,。如果有其他的安装包,不用删除 ,但是如果本目录下有其他的重名文件比如manifest.json文件,把它重命名备份掉。然后把那3个parcel包的文件放在这里。
[root@server cloudera]# cd parcel-repo
[root@server parcel-repo]# ll
总用量 1555544
-rw-r--r-- 1 root root 1592734904 6月 26 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel
-rw-r--r-- 1 root root 41 6月 18 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha
-rw-r----- 1 cloudera-scm cloudera-scm 60926 9月 20 15:11 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.torrent
-rw-r--r-- 1 root root 72302 6月 18 2017 manifest.json
[root@server parcel-repo]# mv manifest.json manifest.json.bak
[root@server parcel-repo]# ll
总用量 1555544
-rw-r--r-- 1 root root 1592734904 6月 26 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel
-rw-r--r-- 1 root root 41 6月 18 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha
-rw-r----- 1 cloudera-scm cloudera-scm 60926 9月 20 15:11 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.torrent
-rw-r--r-- 1 root root 72302 6月 18 2017 manifest.json.bak
上传刚刚下载的spark包在本目录下:
[root@server parcel-repo]# ll
总用量 1817628
-rw-r--r-- 1 root root 1592734904 6月 26 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel
-rw-r--r-- 1 root root 41 6月 18 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha
-rw-r----- 1 cloudera-scm cloudera-scm 60926 9月 20 15:11 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.torrent
-rw-r--r-- 1 root root 72302 6月 18 2017 manifest.json.bak
-rw-r--r-- 1 root root 165561123 3月 14 11:01 SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel.filepart
-rw-r--r-- 1 root root 41 3月 14 09:13 SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel.sha1
[root@server parcel-repo]#
[root@server parcel-repo]# ll
总用量 1728592
-rw-r--r-- 1 root root 1592734904 6月 26 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel
-rw-r--r-- 1 root root 41 6月 18 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha
-rw-r----- 1 cloudera-scm cloudera-scm 60926 9月 20 15:11 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.torrent
-rw-r--r-- 1 root root 4807 3月 14 11:02 manifest.json
-rw-r--r-- 1 root root 72302 6月 18 2017 manifest.json.bak
-rw-r--r-- 1 root root 177185276 3月 14 09:28 SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel
-rw-r--r-- 1 root root 41 3月 14 09:13 SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel.sha1
[root@server parcel-repo]# mv SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel.sha1 SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel.sha
[root@server parcel-repo]# ll
总用量 1728592
-rw-r--r-- 1 root root 1592734904 6月 26 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel
-rw-r--r-- 1 root root 41 6月 18 2017 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha
-rw-r----- 1 cloudera-scm cloudera-scm 60926 9月 20 15:11 CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.torrent
-rw-r--r-- 1 root root 4807 3月 14 11:02 manifest.json
-rw-r--r-- 1 root root 72302 6月 18 2017 manifest.json.bak
-rw-r--r-- 1 root root 177185276 3月 14 09:28 SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel
-rw-r--r-- 1 root root 41 3月 14 09:13 SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel.sha
5.如果刚刚没有停掉CM和集群,现在将他们停掉。然后运行命令。
[root@server parcel-repo]# service cloudera-scm-server restart
Restarting cloudera-scm-server (via systemctl):
[ 确定 ]
[root@server parcel-repo]#
6.把CM和集群启动起来。然后点击主机->Parcel页面,看是否多了个spark2的选项。如下图,你这里此时应该是分配按钮,点击分配按钮,等待操作完成后,点击激活按钮
7.激活后,点击你的群集 > 添加服务,添加spark2服务。注意,如果你这里看不到spark2服务,就请检查你的CSD包和parcel包是否对应,上面的步骤是否有漏掉。正常情况如下图:
运行Spark2:
[root@namenode1 ~]# spark2-shell
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
18/03/14 13:38:37 WARN spark.SparkContext: Support for Java 7 is deprecated as of Spark 2.0.0
18/03/14 13:38:39 WARN util.Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
Spark context Web UI available at http://192.168.101.225:4041
Spark context available as 'sc' (master = yarn, app id = application_1520998888517_0002).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.1.0.cloudera1
/_/
Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_67)
Type in expressions to have them evaluated.
Type :help for more information.
scala>
scala>