升级前准备:
如果是 centos6.x的系统得升级glibc和pam包
在/etc/ld.so.conf 文件里添加 /usr/src/jdk1.6.0_23/jre/lib/amd64/server,然后运行ldconfig命令
配置好新的hadoop-2.7.2到各个集群服务器上
配置好新的环境变量备用
开始升级:
1.停止hive、hbase、zookeeper等相关服务
2.检查文件(如果文件太多太费时间可以不做)
hadoop dfsadmin -safemode enter
检查元数据块(过滤所有以小圆点开始的行):
hadoop fsck / -files -blocks -locations |grep -v -E '^\.' > old-fsck.log hadoop dfsadmin -safemode leave
3.停止hadoop集群
$HADOOP_HOME/bin/stop-all.sh
4.修改环境变量
source /etc/profile 各个集群都执行
echo $HADOOP_HOME 看是否是新的hadoop目录了
5.开始升级
hadoop-daemon.sh start namenode -upgrade 启动namenode升级
hadoop-daemons.sh start datanode 启动各个数据节点
打开日志文件观察有误错误,如果报内存溢出,修改hadoop-env.sh 文件的export HADOOP_HEAPSIZE,HADOOP_CLIENT_OPTS参数值和yarn-env.sh文件JAVA_HEAP_MAX参数值
打开50070端口web页面观察升级过程
等所有数据节点全部升级完成后,检查数据完整性(此过程根据集群数量得等一段时间)
hadoop fsck /
有问题回滚命令:
hadoop-daemon.sh start namenode -rollback
hadoop-daemons.sh start datanode –rollback
6.提交升级
运行一段时间后,观察没有问题,可以提交升级
hdfs dfsadmin -finalizeUpgrade