发布网友 发布时间:2022-04-24 17:48
共1个回答
热心网友 时间:2022-04-09 20:47
nn1为active,nn2为standby,upgrade.sh为批量执行脚本
首先下载2.7.2的hadoop源码进行编译,形成hadoop-2.7.2.tar.gz
安装新版本的hadoop,从log-server上分发新版的hadoop并解压
cd /letv/setupHadoop
./upgrade.sh distribute cluster_nodes hadoop-2.7.2.tar.gz /letv/usr/local
./upgrade.sh common cluster_nodes “cd /letv/usr/local;tar -xzvf hadoop-2.7.2.tar.gz”
将新版hadoop 的 /etc/hadoop下的所有文件替换为原版hadoop的相同文件夹下的配置文件。
./upgrade .sh common cluster_nodes “cd /letv/usr/local/hadoop-2.7.2/etc;rm -rf hadoop;cp -r /usr/local/hadoop/etc/hadoop /letv/usr/local/hadoop-2.7.2/etc “
一、 Prepare Rolling Upgrade
1、以hadoop用户登录nn2执行
“hdfs dfsadmin -rollingUpgrade prepare”
2、nn2上执行
“hdfs dfsadmin -rollingUpgrade query”
等待,直到出现 “Proceed with rolling upgrade”如果不出现,重复执行前一个命令
3、完成操作后,在namenode的50070端口页面最上端上会出现相应提示信息,表示rollback文件生成。
二、 Upgrade Active and Standby NameNodes and ZKFC
1、关闭standby的namenode即nn2和ZKFC。
hadoop-daemon.sh stop namenode
hadoop-daemon.sh stop zkfc
2、以rollingUpgrade的方式启动nn2
切换到root用户
然后建立新hadoop的软链
cd /usr/local
rm -rf hadoop
ln -s /letv/usr/local/hadoop-2.6.3 hadoop
chown - R hadoop:hadoop hadoop
重新启动namenode和zkfc
hadoop-daemon.sh start namenode -rollingUpgrade started
hadoop-daemon.sh start zkfc
启动完成后nn2为standby状态
3、切换nn1和nn2使得nn1为standby(nn2上操作),nn2为active。
hdfs haadmin -failover testnn1 testnn2
4、 在nn1上重复步骤1和2
5、切换nn1和nn2恢复原来的状态
hdfs haadmin -failover testnn2 testnn1
三、Upgrade Journalnode
journalnode更新需要一台一台操作,不可以批量执行操作,否则导致集群挂掉。
1、登录一台journalnode(新集群resourcemanager和journalnode启动在了一台机子上,所以先从standby的resourcemanager入手,然后是active的resourcemanager,其次顺序任意)
ssh sdf-resourcemanager2
2、停止journalnode服务
hadoop-daemon.sh stop journalnode
停止resourcemanager服务(这里是rm2所以会执行这一步,如果接下来的journalnode上不存在rm进程则不需要执行)
3、 安装新版本hadoop
切换到root用户
然后建立新hadoop的软链
cd /usr/local
rm -rf hadoop
ln -s /letv/usr/local/hadoop-2.7.2 hadoop
chown - R hadoop:hadoop hadoop
4、启动新版的journalnode
hadoop-daemon.sh start journalnode。
yarn-daemon.sh start resourcemanager。
5、每台journalnode执行1-4操作,没有resourcemanager进程的机子不做rm的重启操作。
注意,一定要等journalnode 完全启动后,才可以执行下一个journalnode的升级操作。可以查看日志,也可以查看/data/hadoop/data2/journal_node/test-cluster/current下的edit文件,看重启journalnode服务的这台服务器是否和其它journalnode节点上相同文件夹的的edit文件同步。同步后,方可继续。
四、Upgrade DataNodes and Nodemanager
1、选择任意一个datanode(集群可以按机架来批量执行),执行
hdfs dfsadmin -shutdownDatanode DATANODE_HOTS:50020 upgrade
yarn-daemon.sh stop nodemanager
完后datanode和nodemanager进程关闭。
2、安装新版本hadoop
切换到root用户
然后建立新hadoop的软链
cd /usr/local
rm -rf hadoop
ln -s /letv/usr/local/hadoop-2.7.2 hadoop
chown - R hadoop:hadoop hadoop
3、启动datanode和nodemanager
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
4、所有datanode和nodemanager节点执行步骤1、2和3
五、
确定升级完成后,nn1和nn2上执行 hdfs dfsadmin -rollingUpgrade finalize来结束升级操作。Namenode的50070端口页面的提示信息消失。此步骤不可逆,一旦执行,rollbackfsimage文件变为普通的fsimage文件,集群不可再回到升级前的状态