这里简单记录一下主要步骤。
1、停掉所有的Hadoop 1.x进程
2、copy Hadoop 2.x项目文件到所有节点上
3、设置Hadoop 2.x的环境变量
4、编辑Hadoop 2.x的配置文件
值得注意的是:需要使用之前版本的HDFS的meta data和 data。因此以下几项需要和之前版本Hadoop的设置一样:
a) core-site.xml
- hadoop.tmp.dirb) hdfs-site.xml
- dfs.name.dir
- dfs.data.dir
5、启动hdfs
注意:如果直接使用‘sbin/start-dfs.sh’去启动hdfs,那么会失败,并抛出如下的错误:
因此,需要用命令‘sbin/start-dfs.sh -upgrade’来启动hdfs。然后,hdfs成功启动。
7、启动Yarn
命令:sbin/start-yarn.sh
8、测试MapReduce作业
由于Yarn能够向前兼容MRv1的程序,所以我们能成功执行hadoop-mapreduce-examples-2.0.3-alpha.jar以及hadoop-examples-1.1.1.jar里的MR jobs。
9、过一段时间后,如果觉得升级后的cluster稳定了,就可以执行命令“hadoop dfsadmin -finalizeUpgrade”来finalize这次upgrade。
需要注意的是,执行finalize操作时HDFS必须是工作状态,否则会报如下的错误:
finalizeUpgrade: Call From localhost.localdomain/127.0.0.1 to localhost:9010 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused