温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github: https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
文档编写目的
Cloudera于2019年1月29日发布CDSW1.5,Fayson在前面的文章《0544-CDSW1.5的新功能》中对于1.5的新功能也做了介绍。对于已经安装并在使用的CDSW用户,很多都是1.4版本的,发布新版本,一般第一时间关心是如何升级,本文将主要描述如何升级CDSW。
- 测试环境
1.CM和CDH版本为5.16.1
2.CDSW初始版本为1.4.2
3.集群已启用Kerberos
4.RedHat7.4
2
升级说明
在CDSW1.4.2之前,停止或重启CDSW服务,都可能导致CDSW数据丢失,这是CDSW的一个bug:TSB-346:
Risk of Data Loss During Cloudera Data Science Workbench (CDSW) Shutdown and Restart
该bug直到CDSW1.4.3才修复,当然我们要升级到的1.5也已经修复,但本文要介绍的环境基础版本是1.4.2,所以也会有这个问题,而升级肯定会涉及CDSW服务的停止或重启,所以我们需要参考Cloudera官方提供的安全的方式来停止CDSW服务,该方式同时还会帮你自动备份数据。
具体参考:
https://www.cloudera.com/documentation/data-science-workbench/latest/topics/cdsw_release_notes.html#fixed_issues_143__TSB-350
3
升级前准备
1.下载cdsw_protect_stop_restart.sh到CDSW Master节点,该脚本主要会帮你备份CDSW的项目数据。
代码语言:javascript复制[root@cdsw ~]# wget https://www.cloudera.com/documentation/other/shared/cdsw_protect_stop_restart.sh
[root@cdsw ~]# cat cdsw_protect_stop_restart.sh
2.执行该脚本,按照提示操作:
代码语言:javascript复制[root@cdsw ~]# sh cdsw_protect_stop_restart.sh
按回车
去CM界面上停止CDSW服务,然后再按回车
3.在Master节点上备份/var/lib/cdsw目录
代码语言:javascript复制[root@cdsw ~]# tar cvzf cdsw.tar.gz /var/lib/cdsw/*
4.如果你在使用的是Redhat,而且CDSW的版本低于1.4.2,你还需要重启所有CDSW节点,因为从1.4.2开始,CDSW打包了一个Redhat内核bug的修复包,而为了让其生效,需要重启所有服务器。Fayson的环境是1.4.2的默认已包含,该过程省略。
5.从CM界面停用旧的CDSW1.4.2的包。
6.下载CDSW1.5的CSD文件到Cloudera Manager节点。
代码语言:javascript复制[root@ip-172-31-13-38 ~]# cd /opt/cloudera/csd
[root@ip-172-31-13-38 csd]# rm -rf CLOUDERA_DATA_SCIENCE_WORKBENCH-CDH5-1.4.2.jar
[root@ip-172-31-13-38 csd]# wget https://archive.cloudera.com/cdsw1/1.5.0/csd/CLOUDERA_DATA_SCIENCE_WORKBENCH-CDH5-1.5.0.jar
[root@ip-172-31-13-38 csd]# chown cloudera-scm:cloudera-scm CLOUDERA_DATA_SCIENCE_WORKBENCH-CDH5-1.5.0.jar
[root@ip-172-31-13-38 csd]# chmod 644 CLOUDERA_DATA_SCIENCE_WORKBENCH-CDH5-1.5.0.jar
[root@ip-172-31-13-38 csd]# systemctl restart cloudera-scm-server
7.待Cloudera Manager重启完成后,登录CM,重启Cloudera Management Service。
4
准备CDSW1.5的安装包
1.下载准备CDSW1.5的Parcel包:
代码语言:javascript复制https://archive.cloudera.com/cdsw1/1.5.0/parcels/CDSW-1.5.0.p1.849870-el7.parcel
https://archive.cloudera.com/cdsw1/1.5.0/parcels/CDSW-1.5.0.p1.849870-el7.parcel.sha
https://archive.cloudera.com/cdsw1/1.5.0/parcels/manifest.json
2.将下载好的Parcel包部署在本地的apache服务器的/var/www/html/cdsw1.5目录下
3.验证本地Parcel部署是否成功
4.使用管理员登录Cloudera Manager,进入Pacel主界面
5.点击“配置”,将cdsw1.4版本的本地Parcel库地址配置到列表中
6.保存更改后回到Parcel界面查看加载在的CDSW1.5版本
7.下载->分配->激活
5
升级CDSW
1.通过CM进入CDSW服务,点击“配置”,搜索“Install Required Packages”,如果已勾选,则跳过该步直接到下一步,否则需要在所有的CDSW节点上手动安装以下包:
代码语言:javascript复制nfs-utils
libseccomp
lvm2
bridge-utils
libtool-ltdl
iptables
rsync
policycoreutils-python
selinux-policy-base
selinux-policy-targeted
ntp
ebtables
bind-utils
nmap-ncat
openssl
e2fsprogs
redhat-lsb-core
socat
2.通过CM进入CDSW服务,进入“实例”页面,全选三个角色。
点击“已选定的操作”->“Prepare Node”
3.重复上面的步骤,再次点击“Prepare Node”
4.重启CDSW服务
5.等待CDSW服务完全就绪,这个过程可能时间较长。
6.最终启动完毕
6
更新默认的引擎到v7并且验证CDSW
1.使用admin登录CDSW进入“Admin”->“Engines”,选择Base Image v7
保存成功
2.启动一个会话进行测试,可以看到镜像已经是v7
运行成功。
3.检查CDSW的版本已经是1.5
7
总结
1.如果你的CDSW版本低于1.4.3,在停止或者重启CDSW服务时一定能注意要备份好数据,否则可能导致CDSW的数据丢失,官网提供了专门用于备份数据的脚本,具体参考本文的第二和第三章节。
2.如果你的初始CDSW版本是1.4.1或更低,同时你使用的是Redhat,在备份好CDSW数据以及停止CDSW服务准备升级时,还需要重启所有CDSW节点服务器,因为从1.4.2开始,CDSW打包了一个内核的bug的补丁包,重启服务器是为了让其生效。
3.更新了CDSW1.5的Parcel包以后,在重启CDSW服务前,一定要点击“Prepare Node”,因为CDSW会更新OS的包。
4.严格按照文档升级成功后,不会导致CDSW平台的工程、用户以及配置等信息丢失。
5.升级成功后,CDSW准备好需要较长的时间,需要有一定的心理准备,Fayson的环境没有什么数据,也用了快20分钟。
6.在升级过程启动CDSW的时候,后台启docker在做数据库迁移的时候出现了故障,有一个db-migrate的docker会报错起不来,解决过程比较长,单独写了文章,请参考明天的文章《CDSW1.4升级1.5版本db-migrate镜像启动失败问题解决》
参考文档:
https://www.cloudera.com/documentation/data-science-workbench/latest/topics/cdsw_upgrade_parcel.html
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。