cdh4.6.0到cdh5.2.0 upgrade和rollback问题小结

upgrade小结:1.dfsadmin -upgradeProgress status 在cdh5.2.0中没有,在4.6.0有(见源码org.apache.hadoop.hdfs.tools.DFSAdmin)升级的时候不能通过这个看到升级状态rollingUpgrade这个参数在4.6.0中不存在,在5.2.0中有,可以用于滚动升级2.在cdh5.2.0中执行upgrade,nn中调用的命令是

hadoop-daemon.shstartnamenode-upgrade

最终调用org.apache.hadoop.hdfs.server.namenode.NameNode类,并传入upgrade参数3.yarn的设置有些变动,下面两个参数会影响nm是否启动正常

<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>

修改为:

<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>

4.impala1.1.1和cdh5.2.0有兼容性问题cdh5.x开始使用PB做通信,需要升级impala到2.0.0(impala的可用性/稳定性/性能需要测试)

rollback小结:1.rollback要在4.6.0版本上运行在4.6.0上运行rollback,finalize,upgrade时,,都会判断时否为ha模式,如果没有关闭ha的配置会报如下错误:

14/11/1915:25:47FATALnamenode.NameNode:Exceptioninnamenodejoinorg.apache.hadoop.HadoopIllegalArgumentException:Invalidstartupoption.CannotperformDFSupgradewithHAenabled.atorg.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1130)atorg.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1241)

namenode类main方法中通过createNameNode方法创建一个NameNode的实例

publicstaticvoidmain(Stringargv[])throwsException{if(DFSUtil.parseHelpArgument(argv,NameNode.USAGE,System.out,true)){System.exit(0);}try{StringUtils.startupShutdownMessage(NameNode.class,argv,LOG);NameNodenamenode=createNameNode(argv,null);if(namenode!=null)namenode.join();}catch(Throwablee){LOG.fatal(“Exceptioninnamenodejoin”,e);terminate(1,e);}}

而在createNameNode方法中会通过下面的代码检测是否为ha的配置,而在5.2.0是没有这个限制的。

if(HAUtil.isHAEnabled(conf,DFSUtil.getNamenodeNameServiceId(conf))&&(startOpt==StartupOption.UPGRADE||startOpt==StartupOption.ROLLBACK||startOpt==StartupOption.FINALIZE)){thrownewHadoopIllegalArgumentException(“Invalidstartupoption.”+”CannotperformDFSupgradewithHAenabled.”);}

这里会涉及到两个判断方法:1)

org.apache.hadoop.hdfs.HAUti类的isHAEnabled方法:publicstaticbooleanisHAEnabled(Configurationconf,StringnsId){Map<String,Map<String,InetSocketAddress>>addresses=DFSUtil.getHaNnRpcAddresses(conf);if(addresses==null)returnfalse;Map<String,InetSocketAddress>nnMap=addresses.get(nsId);returnnnMap!=null&&nnMap.size()>1;}

<property><name>dfs.ha.namenodes.bipcluster</name><value>nn1</value></property>『 不可能 』只存在於蠢人的字典里

cdh4.6.0到cdh5.2.0 upgrade和rollback问题小结

相关文章:

你感兴趣的文章:

标签云: