HDP2.3.2升级到HDP2.3.4

时间:2022-05-21 15:30:12

HDP2.3.2升级到HDP2.3.4

先介绍下,本集群 BigData 现在的环境是ambari2.1.2,hdp2.3.2,目标是不升级ambari,而升级HDP。本集群有三台机器:master、slave1、slave2,都是运行在centos6.7下的。本文是根据官方文档 HDP2.3.2版本下的Ambari Upgrade Guide 而写的.
之所以写本文,一方面是想把自己的经验分享给大家,另一方面也是有问题请教大家。因为升级到最后,集群中的一台机器slave1总是处在 upgrading状态,而集群中的master 和slave2 却升级成功,显示 upgraded状态。

提示:通过ambari集群管理的HDP的升级一定要参考Ambari Upgrade Guide ,而不是Non-Ambari Cluster Upgrade Guide.

1版本对应

1.1 HDP-Ambari-Spark版本对应

HDP2.3.2升级到HDP2.3.4

1.2 HDP2.3.4 的组件版本

Apache– versions for– HDP 2.3.4
Apache Accumulo 1.7.0 Apache Atlas 0.5.0 Apache Calcite 1.2.0
Apache DataFu 1.3.0 Apache Falcon 0.6.1 Apache Flume 1.5.2
Apache Hadoop 2.7.1 Apache HBase 1.1.2 Apache Hive 1.2.1
Apache Kafka 0.9.0 Apache Knox 0.6.0 Apache Mahout 0.9.0+
Apache Oozie 4.2.0 Apache Phoenix 4.4.0 Apache Pig 0.15.0
Apache Ranger 0.5.0 Apache Slider 0.80.0 Apache Solr 5.2.1
Apache Spark 1.5.2 Apache Sqoop 1.4.6 Apache Storm 0.10.0
Apache Tez 0.7.0 Apache ZooKeeper 3.4.6 Additional component
Cascading 3.0.1 Hue 2.6.1

1.3 spark1.5.2在hdp运行条件

因为主要是想用spark1.5,所以才升级hdp的。

HDP2.3.2升级到HDP2.3.4

运行Spark 1.5.2的前提条件: HDP版本在2.3.4及以上。

注意:HDP升级到2.3.4以后,spark自动升级到了1.5.2 。
先升级ambari到2.2,再升级HDP到2.3.4,也可以直接用amabri2.1,升级hdp到2.3.4。这几种方法我都试过,但是升级ambari过程中,在进行这步——Ambari Server database schema 时,执行了语句ambari-server upgrade 就会出错,关于升级ambari的文档,以后有空了再写。

2准备

注意:
1. 确保集群操作是健壮的,即各项服务是可以正常启动、停止的。
2. 如果是升级到minor version(如hdp2.2->2.3,而非2.3.2->2.3.4),升级hdp集群前,先把ambari升级到对应的版本。强烈建议升级HDP前,先升级ambari。见图1-1。本文档没有升级amabri。
3. 确保所有服务处在running状态;
4. 服务检查,对service action菜单里的选项试试,确保他们能够正常执行;
5. 清除所有警告;
6. 时间服务启动、停止;
7. 下载必要的包,见表2-1,使用本地库的话,见说明;
8. 如果你是在升级 到Ambari 2.2, 在performing any Stack upgrade之前,必须确保Ranger db root password是非空的。给Ranger db root设置一个密码,然后在Ambari Web 上设置Ranger db root password设为这个值. 然后,在Ambari Web重启Ranger Admin。
9. 备份数据库,ambari,Hive metastore, ranger 和oozie。
10. 确保/usr/hdp/下有>2.5G空间;
11. 提前下载好软件包. 设好本地库。
12. 确保时间点数据库备份,包括Ambari, Hive Metastore, Ranger and Oozie等。

2.1 检查service action 的start 、stop、run service check

2.2启动所有服务并清除警告

2.3 保证没有maintenance状态的服务

2.4 时间服务ntpd启动、停止

在三台机器上,都执行:

service ntpd status
service ntpd stop
service ntpd start

2.5备份数据库

[root@master ~]#mysqldump -uroot -p --all-databases > /root/backupforhdp/all20160117.sql

2.6本地库配置

2.6.1 下载需要的包

提前下好HDP-2.3.4.0-centos6-rpm.tar.gz 和HDP-UTILS-1.1.0.20-centos6.tar.gz。

所有库的最新有效地址 ,是在网页上的。下载后的pdf里的地址不能下载。

版本 HDP2.3.4.0 url
库名 Format URL
HDP Repo File http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.4.0/hdp.repo
Tarball http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.4.0/HDP-2.3.4.0-centos6-rpm.tar.gz
HDP-UTILS Tarball http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6/HDP-UTILS-1.1.0.20-centos6.tar.gz

2.6.2 拷贝hdp的升级包到指定位置

将HDP-2.3.4.0-centos6-rpm.tar.gz
拷到 /var/www/html/hdp/HDP/centos6/2.x/updates
下,解压,将解压后的 HDP/centos6/2.x/updates/2.3.4.0/
整个包拷到/var/www/html/hdp/HDP/centos6/2.x/updates/ 下,如图。
HDP2.3.2升级到HDP2.3.4

2.6.3 拷贝 hdp-utils包

将之前的hdp-utils包剪切到 /root/backupforhdp/下,解压新的 hdp-utils包。
注意:2.3.4 的 utils包 和2.3.2 以前用的那个的不同之处在于,
①/var/www/html/hdp/HDP-UTILS-1.1.0.20/repos/centos6/lucid 下一个是 lucidworks-hdpsearch-2.3-2.noarch.rpm 一个是lucidworks-hdpsearch-2.3-4.noarch.rpm
②/var/www/html/hdp/HDP-UTILS-1.1.0.20/repos/centos6/mysql-connector-java 下,前者只有一个包,后者多了一个包。
③ /var/www/html/hdp/HDP-UTILS-1.1.0.20/repos/centos6/repodata 下内容不同。

2.6.4 base URL

base url
amabri http://master/ambari-2.2.0.0/centos6/2.2.0.0-1310
hdp http://master/hdp/HDP/centos6/2.x/updates/2.3.4.0
hdp-utiles http://master/hdp/HDP-UTILS-1.1.0.20/repos/centos6

2.6.5 对配置多个库的集群要执行

(这是参考的”设置本地库”)因为本集群,机器上 配置了多个库,要在所有节点上部署下列,对Linux6系统,

yum install yum-plugin-priorities

然后,

vi /etc/yum/pluginconf.d/priorities.conf

将其内容做如下修改:

[main]
enabled=1
gpgcheck=0

3准备升级

强烈建议做如下数据库的备份:
• Ambari database
• Hive Metastore database
• Oozie Server database
• Ranger Admin database
• Ranger Audit database

我们在 2.5 已经备份了。

4升级——Manual Maintenance Upgrade

4.1 注册新版本

在这之前,先把所有机器上的HDP.repo 和HDP-UTILS.repo 删了。
在三台机器上,先备份到 /root/backupforhdp,再删除原来的repo:

cp /etc/yum.repos.d/HDP.repo /root/backupforhdp/
cp /etc/yum.repos.d/HDP-UTILS.repo /root/backupforhdp/
rm /etc/yum.repos.d/HDP.repo
rm /etc/yum.repos.d/HDP-UTILS.repo

登录amabri,在ambari web 页面,导航栏里 Admin->Stack and Versions,按tab选项卡,选versions,出现如图,单击右上角 +Register Version

HDP2.3.2升级到HDP2.3.4

HDP2.3.2升级到HDP2.3.4

根据你的系统,选择对应的系统、填入base url.
HDP2.3.2升级到HDP2.3.4
该图片的URL就是我们前边的 base url 。

4.2 安装新版本

4.2.1 在集群上安装包

HDP2.3.2升级到HDP2.3.4

HDP2.3.2升级到HDP2.3.4

HDP2.3.2升级到HDP2.3.4
Install packages 这步等待时间较长,10-20分钟。完成后,如图,注意:不要点 perform。

4.2.2 在三台机器上安装完后,出现:

HDP2.3.2升级到HDP2.3.4
记住—— 2.3.4.0-3485

4.2.3 选定HDP版本

在ambari web页面,Stop all services 。
然后,在三台机器上执行,hdp-select set all {repository-version},其中{repository-version}就是刚刚记住的 2.3.4.0-3485。

hdp-select set all 2.3.4.0-3485

4.2.4 首先启动 Zookeeper

Services > Zookeeper, 在Service Actions 菜单 ,选择 Restart All。
然后,一个一个地,重启其他已安装服务。
对于 client-only services, 比如像Tez, Pig, or Sqoop, 从service action选择 Refresh Configs。
重启的过程中,三台机器就已经在 upgrading 状态了。

4.2.5 让集群在目标版本上运行

  1. 如果你的集群中包括Ranger,而且是在HDP2.3下运行,必须做额外的手动操作, 详情见 ,完成了ranger的手动操作后,再回到这部分完成进程。
  2. 确认所有服务正常启动后,去运行 Ambari Server的机器上,执行以下命令来 完成升级,ambari-server set-current –cluster-name= CLUSTERNAMEversiondisplayname= VERSION_NAME,其中 CLUSTERNAME VERSION_NAME 是HDP版本号,如HDP-2.3.4.0。
ambari-server set-current --cluster-name=BigData --version-display-name=HDP-2.3.4.0

结果如图,输入ambari 的登录用户及密码,
HDP2.3.2升级到HDP2.3.4

但是出错了,
HDP2.3.2升级到HDP2.3.4
原因是slave1还没有完成升级,是 Upgrading 状态。
但是其他两台机器已经升级完成,如图,
HDP2.3.2升级到HDP2.3.4
HDP2.3.2升级到HDP2.3.4
HDP2.3.2升级到HDP2.3.4

如果 ambari-server set-current 命令不好用,就重启ambari server ,等待ambari agent重新注册,再尝试。

问题

可以看到如图,Upgrade In Process,现在只能等待 slave1完成升级,由Upgrading 变成Upgraded。但是等了一个晚上都没完成。
查看ambari web页面,没有任何正在进行中的状态。
表示很无奈,也不知道怎么回事。
哪位大侠能帮忙看看呢?

升级HDP,由HDP2.2.x 到HDP2.3.m,如 HDP2.2.9 到 HDP2.3.4, 这是minor upgrade,由HDP2.3.x 升级到HDP2.3.y ,如本文的HDP2.3.2 到HDP2.3.4,是maintenance upgrade。

5总结

我总结了有6方法。对这六种方法我都试过,文档已写出来,暂时没有时间整理上来。

  1. 先升级ambari到2.2,通过rolling方法升级HDP2.3.4
  2. 先升级ambari到2.2,通过express方法升级到HDP2.3.4
  3. 不升级ambari,保持在ambari2.1.2,通过rolling方法升级到HDP2.3.4
  4. 不升级ambari,保持在ambari2.1.2,通过express方法方法升级到HDP2.3.4
  5. 不升级ambari,保持在ambari2.1.2,通过rolling maintenance 方法升级到HDP2.3.4
  6. 不升级ambari,保持在ambari2.1.2,通过manual maintenance 方法升级到HDP2.3.4

前四种方法参考的是 HDP2.3.4的文档——Ambari Upgrade Guide
后两种方法参考的是 HDP2.3.2的文档——Ambari Upgrade Guide
本人可能经验不足,希望前辈多多指教!基于实际操作过程中,最后遇到的问题,slave1 总是处于upgrading状态。希望大家能够多出出主意。

另,如有转载,请标明出处,谢谢。