desehawk 发表于 2014-12-30 16:27:26

Hadoop2.4的ResourceManager HA高可用配置


问题导读

1.ResourceManager HA需要修改哪些配置?
2.如何强制切换HA?



static/image/hrline/4.gif




Hadoop 2.2没怎么关注过,太新,bug太多。2.4出来以后关注了一些东西,比如2.4里面直接带了ResourceManager的高可用,这点比较吸引人。之前2.2没注意有没有,貌似是没有,然后CDH自己出了一个解决方案,这次2.4的更新直接自己带了,还不错,这样就全了,Namenode有HA和Federation,RM也有了HA,而且也可以通过ZKFC自动做故障切换。大概从2.4开始,Hadoop就可以往生产环境逐渐切换了。

直接记录配置 RM HA 的最小需求和配置项。跟NN的HA一样,RM的HA也需要两台机器硬件配置相同,这个没什么可解释的了,当初1代的时候,NN和SNN就必须是一模一样的硬件配置。就像配置NN的HA一样,RM的HA也需要给出servicename。以下配置是配置RM自动失效恢复的配置项,大概没多少人会用到手动恢复吧,用手动恢复就把zookeeper部分给干掉就行了。
<property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
</property>

<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
</property>

<property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>192.168.1.2</value>
</property>

<property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>192.168.1.3</value>
</property>

<property>
    <name>yarn.resourcemanager.recovery.enabled</name>
    <value>true</value>
</property>

<property>
    <name>yarn.resourcemanager.store.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>

<property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>192.168.1.2:2181,192.168.1.3:2181</value>
    <description>For multiple zk services, separate them with comma</description>
</property>

<property>
      <name>yarn.resourcemanager.cluster-id</name>
      <value>yarn-ha</value>
</property>


将配置写入yarn-site.xml里面,然后分别在两台服务器正常启动RM就可以了,就像启动NN HA一样的方式 sudo -u yarn yarn-daemon.sh start resourcemanager另外,在Hadoop的各种HA中,有个隐藏属性是很多人不知道的,就是强制切换,一般来说,我们通过命令行切换HA,需要去运行

sudo -u hdfs hdfs haadmin -transitionToActive/transitionToStandby

或者sudo -u yarn yarn rmadmin -transitionToActive/transitionToStandby

但是,这种方式在启用了ZKFC做自动失效恢复的状态下是不允许修改的,提示信息里只说了可以强制执行,但是没有提供命令,其实强制切换主备命令很简单。加个forcemanual就好了。
sudo -u hdfs hdfs haadmin -transitionToActive --forcemanual nn1

但是这样做的后果是,ZKFC将停止工作,你将不会再有自动故障切换的保障,但是有些时候,这是必须的,特别是有时候,Hadoop的NN在ZKFC正常工作的情况下,也会出现两个standby,两个standby的问题就在于诸如Hive和Pig这种东西,会直接报一个什么 Operation category READ is not supported in state standby 什么什么的,甚至你看着明明一个是active,一个是standby,也会报这个错误,这时候就必须手动强制切换了,强制切换完以后,别忘了重新启动ZKFC就好了。这个强制切换的要求就是用户必须没有任何对元数据的操作,这样才能有效的防止脑裂的发生。应该来说,进入安全模式再切换会比较稳妥一些。



转自http://blog.csdn.net/myproudcodelife/article/details/39129787

pengsuyun 发表于 2014-12-31 08:54:59

先收藏了。

fish_tx 发表于 2014-12-31 09:25:02

没怎么看懂。。。

hbu126 发表于 2014-12-31 09:56:58

thanks a lot


355815741 发表于 2014-12-31 13:18:13

学习下,也去配个ha,谢谢分享~

韩克拉玛寒 发表于 2015-1-14 19:57:28

学习了,今天也是刚把自己2.6版本的HA搭建好

desehawk 发表于 2015-1-15 13:30:22

韩克拉玛寒 发表于 2015-1-14 19:57
学习了,今天也是刚把自己2.6版本的HA搭建好

有没有文章可以学习下

韩克拉玛寒 发表于 2015-1-17 22:34:38

desehawk 发表于 2015-1-15 13:30
有没有文章可以学习下

你好,请参考 :HBase+ZooKeeper+Hadoop2.6.0的ResourceManager HA高可用配置。有的当时也是参考你的文档在做的,共同学习。

suddenly 发表于 2015-3-5 09:35:17

用着了,赞一个!!

mjjian0 发表于 2015-4-9 16:45:22

好奇怪我配完后,出现了两个 active转改的resourcemanager,怎么回事啊
页: [1] 2
查看完整版本: Hadoop2.4的ResourceManager HA高可用配置