ambari和HDP升级文档

写在前面的话:当初项目组业务扩大,日均流水达到千万级别,考虑到mysql可能没法支撑,便开始研究HBase,从而开始接触Hadoop。刚开始安装集群时,使用很是传统的下载、安装模式,不但效率低下,而且极其容易出问题。偶然发现有ambari这么好用的一个工具,瞬间抛弃旧集群,开始捣鼓ambari。过程当中遇到过不少坑,还好csdn和stackoverflow能找到大部分解答。ambari是Hortonworks公司的一款产品,用来简化安装Hadoop组件和监控整个集群的状态,优势很少说,我的以为缺点是集成的组件版本有点低~~扯的有点远...html

下面开始翻译升级Ambari2.3至2.5
node

原文地址:
mysql

https://docs.hortonworks.com/HDPDocuments/Ambari-2.5.0.3/bk_ambari-upgrade/content/ambari_upgrade_guide.htmlweb

一、更新Ambari和HDPsql

注意:
数据库

Ambari2.5不支持管理HDP 2.2,2.1或2.0集群(小弟是从2.4升级至2.6)。若是你使用的是HDP2.2,2.1或2.0,为了使用Ambari2.5你必须先使用Ambari2.4.2,2.2.2,2.2.1,2.2,2.1或2.0将HDP升级高于2.3的版本。一旦完成上面的升级,就能够将你如今的Ambari升级至2.5啦。centos

二、升级前准备api

当你准备升级Ambari和HDP集群,咱们强烈建议你多看看下面的清单确保你的集群操做是安全的。若是尝试升级一个处于不健康状态的集群可能会致使一些不可预料的结果。浏览器

注意:安全

  • 若是你打算升级Ambari和更新HDP的一个小版本(好比将HDP从2.2->2.3),在升级集群以前最好将Ambair升级至最新的版本。
  • 确保集群中的服务是正常运行的;
  • 对每一个组件进行检查(Service Actions菜单能够找到)而且确保它们能执行成功;
  • 消除每一个警告(alerts)或者这些警告为何产生;
  • 开启和关闭时间服务器。启动和关闭服务的时间,对总体升级来讲,是一个很重要的因素,因此掌握这个信息是方便有用的;
  • 在更新以前下载软件包。由于集群中的每一个节点都须要几GB的下载量,因此建议将它们放在本地仓库;
  • 确保对集群中的数据库实时备份。包括Ambari的数据库、Hive、Ranger和Oozie(竟然没说HBase);
  • 确保查看Ambari2.5.0已知的Issues和特性的改动;
  • 确保/usr/hdp/<version>目录下有足够的磁盘空间;

若是你升级至Ambari2.4,在升级HDP前你必须确保Ranger的数据密码不为空。Ambari须要Ranger数据库密码有值。若是你升级至Ambari2.2没有对Ranger的数据库的密码赋值,Ranger服务将会在升级以后没法启动。

三、更新集群所在的操做系统

这里不作说明,有须要请查看官方文档、评论或私信

四、更新Ambari(基本都是页面操做,简单)

4.1更新前准备

  • 拥有全部集群机器的root权限;
  • 备份Ambari的数据库(默认使用postgresql);
  • 备份Ambari服务的配置文件,路径/etc/ambari-server/conf/ambari.properties;
  • 若是你打算更新Ambari Metrics服务:记下Metrics Collector组件的安装位置;在Ambari页面上关闭Ambari Metrics服务;在更新Ambari以后,Ambari会提示你安装Grafana组件;
  • 升级Ambari后,你必须更新SmartSense(付费产品,惹不起,惹不起...)

4.2更新Ambari

1.在Ambari页面上中止Ambari Metrics

2.中止Ambari server,在安装Ambari server服务的机器上执行

#ambari-server stop

3.中止Ambari agents,在全部安装agents的节点机器上执行

#ambari-agent stop

4.下载新的Ambari repo和HDP repo文件至全部的节点(建议搭建本地仓库)

For RHEL/CentOS/Oracle Linux 6:

wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.0.3/ambari.repo -O /etc/yum.repos.d/ambari.repo

#wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.0.3/ambari.repo -O /etc/yum.repos.d/ambari.repo

For RHEL/CentOS/Oracle Linux 7:

#wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.5.0.3/ambari.repo -O /etc/yum.repos.d/ambari.repo

5.先更新Ambari server

 

yum clean all

yum info ambari-server

yum upgrade ambari-server

6.检查第5步的输出,大体会出现如下的内容:

Setting up Upgrade Process Resolving Dependencies --> Running transaction check

若是升级失败,控制台会输出:

Setting up Upgrade Process No Packages marked for Update

若是升级成功,控制台会输出:

Updated: ambari-server.noarch 0:2.5-111 Complete!

7.再更新Ambari agents

 

yum clean all

yum info ambari-agent

yum upgrade ambari-agent

8.在升级完成,检查每台机器的安装版本

#rpm -qa | grep ambari-agent

9.更新Ambari server的数据库

#ambari-server upgrade

10.启动Ambari server

#ambari-server start

11.启动全部的Ambari agent

#ambari-agent start

12.打开Ambari web页面

在浏览器中输入: http://<your.ambari.server>:8080,默认账号密码 admin/admin

13.更新Ambari Metrics和增长Grafana组件

4.3强制的一些工做

4.3.3.1增长Grafana(4.3讲讲这里)

1.确保全部服务运行正常;

2.新增组件方式是调用ambari提供的API

#curl -u admin:admin -H "X-Requested-By:ambari" -i -X POST http://ambari.server:8080/api/v1/clusters/cluster.name/services/
AMBARI_METRICS/components/METRICS_GRAFANA

3.增长METRICS_GRAFANA(注意改变变量值)

#curl -u admin:admin -H "X-Requested-By:ambari" -i -X POST -d 
'{"host_components":[{"HostRoles":{"component_name":"METRICS_GRAFANA"}}]}' http://ambari.server:8080/api/v1/clusters/
cluster.name/hosts?Hosts/host_name=host.name

4.3.4.2升级日志输出

强烈执行这一项,由于2.4版本的日志看着很蛋疼,全部日志全在一个文件里面,作了此项便于日志的管理和查看。(暂未翻译)

五、升级HDP

5.1升级HDP有两种方式:Rolling Upgrade & Express Upgrade。Rolling Upgrade能够在更新过程当中对服务不长产生影响,可是须要严格的前提,而且升级花费的时间比Express Upgrade长;Express Upgrade升级中会让集群中止服务,可是不会有严格的前条件。(这里请你们依具体业务场景而定,由于小弟所维护的集群做为实时交易存储,没法中断交易,因此选择的Rolling Upgrade)

若是你选择Rolling Upgrade方式,有几个前提:

HDFS部分:必须开启Namenode HA,HDFS中组件在Ambari页面中必须为绿色;若是你升级前版本为HDP 2.2 ,那么你的Namenode Truncate 必须关闭;

YARN部分:Timeline Service State Recovery必须开启;YARN work preserving recovery必须开启;ResourceManager HA 应该开启(可选);

MapReduce部分:JobHistory state应该开启;若是encrypted shuffle已经开启了,ssl-client.xml文件必须拷贝一份至/etc/hadoop/conf/secure文件夹中;

~~~~部分

5.2准备升级

在升级以后,强烈建议备份一下数据库数据

  • Ambari database
  • Hive Metastore database
  • Oozie Server database
  • Ranger Admin database
  • Ranger Audit database

注意:若是你使用的是MySQL 5.6 ,那存储引擎必须选择Inno DB,若是使用的是MyISAM,你必须改变;

HDFS检查点:

1.若是你启用了Namenode HA,在Active Namenode节点上执行下列的步骤;

2.检查Namenode的文件夹,确保没有以前的升级快照;而且,最好检查配置文件中dfs.namenode.name.dir的值,确保值有/current文件夹;

3.建立下列的日志文件和其余文件

#su - hdfs切换至hdfs用户

#hdfs fsck / -files -blocks -locations > dfs-old-fsck-1.log

#hdfs dfsadmin -report > dfs-old-report-1.log

#hdfs dfs -ls -R / > dfs-old-lsr-1.log

#hdfs dfsadmin -safemode enter

#hdfs dfsadmin -saveNamespace

4.将${dfs.namenode.name.dir}/current下的检测点文件备份;

5.备份${dfs.namenode.name.dir}/current/VERSION;

6.退出安全模式

#hdfs dfsadmin -safemode leave

#hdfs dfsadmin -finalizeUpgrade

5.3注册并安装目标版本包

1.登录Ambari页面;

2.Admin > Stack and Versions;

3.点击versions按钮,你能够看到当前运行的版本,将其标识为Current;

4.点击Manage Versions;

5.点击+register Versin;

6.选择软件HDP版本并选择包的传输方式(这里与当初初次安装Ambari一致)

a.选择HDP Stack

b.选择HDP Version

c.选择仓库传输方式;

7.点击save;

安装:

1.登录Ambari;

2.点击Admin > Stack and Versions.

3.点击Versions按钮;

4.点击install并点击ok

当安装完成后,install按钮将会替换为upgrade按钮

5.4执行更新

1.登录Ambari;

2.点击Admin > Stack and Versions.

3.点击Versions按钮;

4.点击Perform Upgrade

5.选择Rolling Upgrade或者Express Upgrade

6.点击Proceed.

后续若是有细节再进行补充。(禁止转载)