热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HDP2.3.2升级到HDP2.3.4

HDP2.3.2升级到HDP2.3.41版本对应1HDP-Ambari-Spark版本对应2HDP234的组件版本3spark152在hdp运行条件2准备1检查serviceact

HDP2.3.2升级到HDP2.3.4

    • 1版本对应
      • 1 HDP-Ambari-Spark版本对应
      • 2 HDP234 的组件版本
      • 3 spark152在hdp运行条件
    • 2准备
      • 1 检查service action 的start stoprun service check
      • 2启动所有服务并清除警告
      • 3 保证没有maintenance状态的服务
      • 4 时间服务ntpd启动停止
      • 5备份数据库
      • 6本地库配置
        • 61 下载需要的包
        • 62 拷贝hdp的升级包到指定位置
        • 63 拷贝 hdp-utils包
        • 64 base URL
        • 65 对配置多个库的集群要执行
    • 3准备升级
    • 4升级Manual Maintenance Upgrade
      • 1 注册新版本
      • 2 安装新版本
        • 21 在集群上安装包
        • 22 在三台机器上安装完后出现
        • 23 选定HDP版本
        • 24 首先启动 Zookeeper
        • 25 让集群在目标版本上运行
      • 问题
    • 5总结


先介绍下,本集群 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版本对应

这里写图片描述

1.2 HDP2.3.4 的组件版本


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

1.3 spark1.5.2在hdp运行条件

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

这里写图片描述

运行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.0url
库名FormatURL
HDPRepo Filehttp://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.4.0/hdp.repo
Tarballhttp://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.4.0/HDP-2.3.4.0-centos6-rpm.tar.gz
HDP-UTILSTarballhttp://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/ 下,如图。

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
amabrihttp://master/ambari-2.2.0.0/centos6/2.2.0.0-1310
hdphttp://master/hdp/HDP/centos6/2.x/updates/2.3.4.0
hdp-utileshttp://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

这里写图片描述

这里写图片描述

根据你的系统,选择对应的系统、填入base url.
这里写图片描述
该图片的URL就是我们前边的 base url 。

4.2 安装新版本


4.2.1 在集群上安装包

这里写图片描述

这里写图片描述

这里写图片描述
Install packages 这步等待时间较长,10-20分钟。完成后,如图,注意:不要点 perform。

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

这里写图片描述
记住—— 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 的登录用户及密码,
这里写图片描述

但是出错了,
这里写图片描述
原因是slave1还没有完成升级,是 Upgrading 状态。
但是其他两台机器已经升级完成,如图,
这里写图片描述
这里写图片描述
这里写图片描述

如果 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状态。希望大家能够多出出主意。

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


推荐阅读
author-avatar
tengfei2008
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有