Hadoop运维之三datanode被迫的升级(2)

看来是前段时间做hadoop集群维护时重启了namenode,且有人自行编译了hadoop源码,生成了hadoop 目录下build文件夹下面生成了新的hadoop版本,hadoop启动时会默认优先选择build目录下的版本,可能由于203.1版本相对203.0版本改动较小,所以在namenode启动后一直正常运行,整个hadoop集群也没有发生异常,一直到重启datanode时,datanode 的hadoop版本是203.0和namenode版本不一致,启动失败。

找到了问题的根源,解决办法也就相应出来了:

1)降级namenode,缺点:需要停止服务,不确定性因素太多(降级可能会导致所有数据丢失),测试周期长且复杂;优点:只要操作一个节点

2)升级所有的datanode,缺点:需要操作集群所有机器(也可以只升级单台机器);优点:测试简单,风险小

很明显,第二种方案是优选方案,测试过程如下:

1)找一台采集服务器,上面已经部署了hadoop客户端,启动datanode,成功,日志信息显示版本为:203.1

2)删除build目录,再次启动datanode,失败

3)恢复build目录,再次启动datanode,成功

4)将build目录拷贝到出错的datanode上,修改hdfs-site.xml配置,将data目录修改为新建目录,启动datanode,成功

5)将data目录修改为最原始的配置,启动datanode,成功

第二种方案测试成功,在namenode上运行fsck命令,正常输出。

于是升级整个集群,到目前为止,集群运行正常。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d1319df350c65c31decfaec95863b815.html