下面MD的文件 感谢老源给的文档,再次记录下
#Hadoop-HA版本升级
<!-- TOC -->
- [版本说明](#)
- [节点构成](#)
- [流程说明](#)
- [Step0 关闭YARN](#step0-yarn)
- [Step1 NameNode准备滚动升级](#step1-namenode)
- [Step2 NameNode升级](#step2-namenode)
- [Step3 切换主从节点](#step3)
- [Step4 同步NameNode升级](#step4-namenode)
- [Step5 单台JournalNode更新](#step5-journalnode)
- [Step6 其他JournalNode更新](#step6-journalnode)
- [Step7 单台DataNode更新](#step7-datanode)
- [Step8 其他Datanode更新](#step8-datanode)
- [Step9 完成HDFS升级](#step9-hdfs)
- [Step10 验证更新状态](#step10)
- [参考文档](#)
<!-- /TOC -->
## 版本说明
运行版本: Hadoop-2.6.0-cdh-5.10.0
升级版本: Hadoop-2.7.6-local-build
## 节点构成
namenode: nn1(active), nn2(standby)
datanode: dn1, dn2, dn3
resourcemanager: rm1(active), rm2(standby)
nodemanager: nm1, nm2, nm3
journalnode: jn1, jn2, jn3
zkfc:zk1, zk2
namenode/zkfc/resourcemanager节点在相同主机
datanode/nodemanager/journalnode在相同主机
## 流程说明
HDFS升级顺序: namenode->journalnode->datanode
YARN升级顺序: 无
HDFS和YARN间升级顺序: 无要求
### Step0 关闭YARN
YARN升级只需要简单文件替换即可,故升级过程中直接关闭YARN
> ${HADOOP_HOME}/sbin/stop-yarn.sh
### Step1 NameNode准备滚动升级
nn2执行
> ${HADOOP_HOME}/bin/hdfs dfsadmin -rollingUpgrade prepare
等待rolling文件生成,通过命令查询进度:
> ${HADOOP_HOME}/bin/hdfs dfsadmin -rollingUpgrade query
当准备完成后,WEB页面会有相应提示,query命令也会返回相应结果
### Step2 NameNode升级
结束运行中的namenode
> ${HADOOP_HOME}/sbin/hadoop-daemon.sh stop namenode
结束运行中的zkfc
> ${HADOOP_HOME}/sbin/hadoop-daemon.sh stop zkfc
修改${HADOOP_HOME}到升级目录
以更新方式启动namenode
> ${HADOOP_HOME}/sbin/hadoop-daemon.sh start namenode -rollingUpgrade started
启动zkfc
> ${HADOOP_HOME}/sbin/hadoop-daemon.sh start zkfc
### Step3 切换主从节点
将已升级的nn2切换为active节点
> ${HADOOP_HOME}/bin/hdfs haadmin -failover nn1 nn2
### Step4 同步NameNode升级
对nn1节点执行Step1~Step2的操作,完成升级准备
再次切换主从节点,还原正常状态
> ${HADOOP_HOME}/bin/hdfs haadmin -failover nn2 nn1
### Step5 单台JournalNode更新
jn1关闭运行中的journalnode节点
> ${HADOOP_HOME}/sbin/hadoop-daemon.sh stop journalnode
修改${HADOOP_HOME}到升级目录
再次启动jn1
> ${HADOOP_HOME}/sbin/hadoop-daemon.sh start journalnode
观察新的jn1节点日志同步状态,当日期同步完成后表明单jn节点更新成功
### Step6 其他JournalNode更新
其他jn节点更新方法参考Step5即可
必须jn节点必须手动逐个更新,批量更新可能导致集群挂掉的情况
### Step7 单台DataNode更新
通过下面的命令关闭datanode节点
> ${HADOOP_HOME}/bin/hdfs dfsadmin -shutdownDatanode ${HOSTNAME}:50020 upgrade
修改${HADOOP_HOME}到升级目录
再次启动datanode
> ${HADOOP_HOME}/sbin/hadoop-daemon.sh start datanode
### Step8 其他Datanode更新
datanode可以批量更新,方法与Step7相同
### Step9 完成HDFS升级
在nn1和nn2上执行下面的命令完成升级操作
> ${HADOOP_HOME}/bin/hdfs dfsadmin -rollingUpgrade finalize
命令执行后,50070管理界面上相应的rolling提示将会消失
### Step10 验证更新状态
关闭集群所有节点并再次启动
> ${HADOOP_HOME}/sbin/start-dfs.sh
> ${HADOOP_HOME}/sbin/start-yarn.sh
通过fsck检查整个集群文件状态
> ${HADOOP_HOME}/bin/hadoop fsck /
## 参考文档
https://blog.csdn.net/seohyunchyl/article/details/52624938
乐享:知识积累,快乐无限。