hadoop1.0到2.0的升级(非跨版本)

注: 升级步骤不涉及HA和federation。如何在Hadoop2.0上部署HA和federation,可以查看另外两篇文章。这是1.0升级2.0的简单升级配置步骤。实践了一下,挺顺利的,HDFS1.0平稳升级2.0,不存在任何不兼容的问题,而且数据没有任何丢失。并且由升级回滚机制,如果升级失败可以确保回滚到之前的环境,很大地提升了稳定性。MR升级中的兼容性问题,下面有简单的概括,具体还要后续使用了才能更明确。而且本文介绍的升级是非跨版本的升级,直接从hadoop 0.20.2到hadoop 2.2.0,如果要从cdh到社区的2版本等升级方式略有不同,仅供参考。


HDFS升级

1) 首先,停止正在运行的hadoop. Bin/stop-all.sh

2) 备份HDFS的元数据和配置信息。也就是<dfs.name.dir>目录下的文件,和conf目录下的文件。

3) 下载Hadoop 2.2.0,解压到与1.0版本同级目录下;

4) 用1.0的conf下的配置文件覆盖2.0/etc/hadoop/下的配置文件。包括: core-site.xml, hdfs-site.xml和mapred-site.xml

5) 修改hadoop2.0的etc/hadoop下的配置文件:

Core-site.xml中添加:
		<property>
		  <name>io.native.lib.available</name>
		  <value>true</value>
		 </property>
这是配置hadoop的native lib本地库,从本地加载库能提升作业执行的效率。

mapred-site.xml中添加:
		<property>
		  <name>mapreduce.framework.name</name>
		  <value>yarn</value>
		 </property>


Hadoop-env.sh中添加JAVA_HOME变量配置;

Yarn.xml中添加:

		<property> 
		  <name>yarn.resourcemanager.address</name> 
		  <value>master ip:8080</value> 
		 </property>
		 
		 <property> 
		  <name>yarn.resourcemanager.scheduler.address</name> 
		  <value>master ip:8081</value> 
		 </property> 
		
		 <property> 
		  <name>yarn.resourcemanager.resource-tracker.address</name> 
		  <value><span style="font-family: 'Microsoft YaHei';">master ip</span><span style="font-family: 'Microsoft YaHei';">:8082</value> </span>
		 </property> 
		
		 <property> 
		  <name>yarn.nodemanager.aux-services</name> 
		  <value>mapreduce_shuffle</value> 
		 </property> 
		
		 <property> 
		  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
		  <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
		 </property>
这些是升级2.0需要配置的变量,其他变量可以沿用1.0中的配置。

6) 执行升级命令: sbin/start-dfs.sh –upgrade

检查升级是否完成: 首先查看logs下的日志记录,然后在dfs.data.dir目录下查看,产生了一个previous文件夹,里面包含原有的元数据信息。表示升级完成。

7) 提交升级: bin/hdfs dfsadmin –finalizeUpgrade 。然后在文件系统中查看文件和块等的完整性。


MapReduce升级

mapreduce不需要做升级,直接在hadoop2.0的安装目录下配置新的MapReduce的参数,然后启动MapReduce 2.0就可以。

1) 上面的配置信息中,已经把MapReduce相关的都配置完了。

2) Sbin/yarn-daemon.sh start resourcemanager

3) Sbin/yarn-daemon.sh start nodemanager

4) 检验启动是否成功: localhost:50070检验HDFS, localhost:8088检验yarn。

相关文章
相关标签/搜索