两台机器,nn1,nn2搭建的ha,同时又担任nn,dn,rm,nm,jn,zkfc,zk等职能。
以下是升级回滚再升级的记录。仅供参考,同时参考了cdh官网的说明,官网主要是使用CM的。
1 官网上下载hadoop2.6cdh5.5.tar包和hadoop的rpm包
rpm2cpio hadoop.rpm | cpio –div
可以从里面找到我们需要的native的文件 。
2 复制原cdh下的etc/下的所有文件到hadoop2.6下的etc/hadoop
3 进入安全模式,生成fsimage文件 ,并备份整个metadata 文件夹
hdfs dfsadmin -safemode enter
hdfs dfsadmin –saveNamespace
cd /hdp/dfs/name
tar -cvf nn_backup_data.tar .
4. 关停所有相关的进程
stop-all.sh
stop-hbase.sh
ps -aef | grep java
5 纷发新的文件到其他节点
6 修改.bash_profile(根据你自己的配置)把HADOOP_HOME 指向新的目录
并纷发到所有机器上,并加载这个文件 使其生效。
7 先启动jn 然后升级hdfs metadata
hadoop-daemons.sh start journalnode
hdfs namenode -upgrade
hadoop-daemons.sh start datanode
根据你的block的数量情况,但是一般会很快的。我这边遇到的情况下,一直会报:缓存管理器在扫描之类的日志,好像是bug.不影响升级。
8 回滚
升级后,namenode ,journalnode和datanode下面的相关version等文件有变动.回滚的操作如下:
先操作journalnode的:
可以直接进入journalnode配置目录下,把current的改成new,把previous的改成current.
或执行
hadoop-daemons.sh start journalnode -rollback(未尝试)
hdfs namenode –rollback
hadoop-daemons.sh start datanode –rollback
9升级后测试
pdsh -w nn1,nn2 "source /home/student/.bash_profile; zkServer.sh start"
在nn2上,hdfs namenode –bootstrapStandby
同步新生成的fsimage
start-dfs.sh
start-yarn.sh
hadoop jar /app/cdh26550/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.5.0.jar wordcount pi 10 100