hadoop2.7.0升级到2.7.1,版本升级

使用过程当中,发现hadoop的YARN-3832的bug,2.6.0中已解决,可是2.7.0中又出现了这个bug。html

15/09/28 10:22:34 INFO mapreduce.Job: Task Id : attempt_1443364253801_0310_m_000000_0, Status : FAILED
Rename cannot overwrite non empty destination directory /data/hadoop/data/tmp/nm-local-dir/usercache/hadoop/filecache/60
java.io.IOException: Rename cannot overwrite non empty destination directory /data/hadoop/data/tmp/nm-local-dir/usercache/hadoop/filecache/60
        at org.apache.hadoop.fs.AbstractFileSystem.renameInternal(AbstractFileSystem.java:735)
        at org.apache.hadoop.fs.FilterFs.renameInternal(FilterFs.java:236)
        at org.apache.hadoop.fs.AbstractFileSystem.rename(AbstractFileSystem.java:678)
        at org.apache.hadoop.fs.FileContext.rename(FileContext.java:958)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:366)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:62)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

找了很久,最终确认该问题是hadoop的bug,不是配置出错。在官网的2.7.1的release中找到了YARN-3832的bug。因此对hadoop进行升级。java

从2.7.0升级为2.7.1,升级步骤以下:shell

1.下载安装包后,下载native的64位包,替换新版本中的native。apache

2.修改2.7.1中的配置文件,保持与当前集群配置一致,修改配置文件后,分发到各台hadoop集群机器的一个临时目录中。个人配置文件列表有:core-site.xml、excludes、hadoop-env.sh、hdfs-site.xml、mapred-env.sh、mapred-site.xml、master、slaves、yarn-env.sh、yarn-site.xml服务器

3.停掉hadoop集群。oop

4.登陆每台hadoop节点的服务器,先备份hadoop的安装文件目录。而后进入hadoop安装目录,执行rm -rf bin etc include lib libexec LICENSE.txt NOTICE.txt README.txt sbin sharespa

5.将临时目录中的2.7.1的hadoop文件拷贝至安装目录。code

6.执行start-all.sh,启动hadoop集群,访问http://localhost:50070/dfshealth.html#tab-overview ,查看hadoop版本是否已更新,查看各节点状态是否正常。xml