大家都知道在hadoop2中对HDFS的改进很大,实现了NameNode的HA;也增加了ResourceManager。但是ResourceManager也可以实现HA。你没看错,确实是ResourceManager的HA。注意是在Apache Hadoop 2.4.1版本中开始加入的,可不是任意一个版本。

我们不讲单点问题的危害,直接讲如何配置ResourceManager的HA。

HA的架构

如果大家理解HDFS的HA,那么ResourceManager的HA与之是相同道理的:也是Active/Standby架构,任意时刻,都一个是Active,其余处于Standby状态的ResourceManager可以随时转换成Active状态。状态转换可以手工完成,也可以自动完成。手工完成时通过命令行的管理命令(命令是“yarn rmadmin”)。自动完成是通过配置自动故障转移(automatic-failover),使用集成的failover-controller完成状态的自动切换。

自动故障转移是依赖于ZooKeeper集群,依赖ZooKeeper的ActiveStandbyElector会嵌入到ResourceManager中,当Active状态的ResourceManager失效时,处于 Standby状态的ResourceManager就会被选举为Active状态的,实现切换。注意:这里没有ZooKeeperFailoverController进程,这点和HDFS的HA不同。

对于客户端而言,必须知道所有的ResourceManager中。因此,需要在yarn-site.xml中配置所有的ResourceManager。那么,当一个Active状态的ResourceManager失效时,客户端怎么办哪?客户端会采用轮询机制,轮询配置在yarn-site.xml中的ResourceManager,直到找到一个active状态的ResourceManager。如果我们想修改这种寻找ResourceManager的机制,可以继承类org.apache.hadoop.yarn.client.RMFailoverProxyProvider,实现自己的逻辑。然后把类的名字配置到yarn-site.xml的配置项yarn.client.failover-proxy-provider中。

配置

在yarn-site.xml中配置如下

 <property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>master1</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>master2</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>zk1:2181,zk2:2181,zk3:2181</value>
</property>

命令

查看状态的命令

yarn rmadmin –getServiceState rm1

状态切换的命令

yarn rmadmin –transitionToStandby rm1

【翻译自http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html】

ResourceManager的HA的更多相关文章

  1. 通过tarball形式安装HBASE Cluster(CDH5.0.2)——配置分布式集群中的YARN ResourceManager 的HA

    <?xml version="1.0"?> <!-- Licensed under the Apache License, Version 2.0 (the &q ...

  2. 5 weekend01、02、03、04、05、06、07的分布式集群的HA测试 + hdfs--动态增加节点和副本数量管理 + HA的java api访问要点

    weekend01.02.03.04.05.06.07的分布式集群的HA测试 1)  weekend01.02的hdfs的HA测试 2)  weekend03.04的yarn的HA测试 1)  wee ...

  3. Hadoop2.4.1 64-Bit QJM HA and YARN HA + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA Install

    Hadoop2.4.1 64-Bit QJM HA and YARN HA Install + Zookeeper-3.4.6 + Hbase-0.98.8-hadoop2-bin HA(Hadoop ...

  4. 【原创】大数据基础之Hadoop(1)HA实现原理

    有些工作只能在一台server上进行,比如master,这时HA(High Availability)首先要求部署多个server,其次要求多个server自动选举出一个active状态server, ...

  5. HAWQ集成Yarn HA作为资源管理服务

    一.第一步当然是配置YARN HA,这在使用ambari管理时很简单,这里不在赘述. 二.建立HAWQ的专用资源队列queue 不要手工编辑scheduler设置,最方便的当然是使用queue man ...

  6. Hadoop 2.7.4 HDFS+YRAN HA部署

    实验环境 主机名称 IP地址 角色 统一安装目录 统一安装用户 sht-sgmhadoopnn-01 172.16.101.55 namenode,resourcemanager /usr/local ...

  7. hadoop在zookeeper上的高可用HA

    (参考文章:https://www.linuxprobe.com/hadoop-high-available.html) 一.技术背景 影响HDFS集群不可用主要包括以下两种情况:一是NameNode ...

  8. HDFS 和 YARN 的 HA 故障切换【转】

    来源:https://blog.csdn.net/u011414200/article/details/50336735 一 非 HDFS HA 集群转换成 HA 集群二 HDFS 的 HA 自动切换 ...

  9. YARN分析系列之三 -- 从脚本入口分析 ResourceManager的初始化过程

    1. 由脚本找到 RM 主类 这部分,我们从脚本作为入口去逐步深入ResourceManager源码. 从 Hadoop 官方文档 中可以看到 ResourceManager 的启动命令为: Usag ...

随机推荐

  1. 【Centos7】安装memcached

    1.Linux系统安装memcached,首先要先安装libevent库. 安装libevent库有两种方式 (1)rpm安装 yum install libevent libdeve (2)源码包安 ...

  2. Leetcode - Letter Combination Of A Phone Number

    Given a digit string, return all possible letter combinations that the number could represent. A map ...

  3. MySQL、PHP入门

    登录MySQL     mysql -hlocalhost-uroot -proot 退出MySQL     exit 每条语句后必须加分号:----------------------------- ...

  4. "R6002 floating point support not loaded"问题分析

    今天为了追踪程序线程退出耗时时间,添加了耗时时间输出日志: TimerMeter tm; // do some threads exit logic float fSecs = tm.Elapsed( ...

  5. 前后端分离(手)-- 使用mock.js(好样的)

    ## 前言: 本篇博文昨天七夕写的,一天下来被虐得体无完肤,苦逼的单身狗只能学习,对!我爱学习,关掉朋友圈,并写了一篇博文发泄发泄.这次写mock.js的使用,能使前后端分离,分离,分离,重要的是说三 ...

  6. Android事件传递机制详解及最新源码分析——View篇

    摘要: 版权声明:本文出自汪磊的博客,转载请务必注明出处. 对于安卓事件传递机制相信绝大部分开发者都听说过或者了解过,也是面试中最常问的问题之一.但是真正能从源码角度理解具体事件传递流程的相信并不多, ...

  7. hdu3081 Marriage Match II(二分+并查集+最大流)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3081 题意: n个女生与n个男生配对,每个女生只能配对某些男生,有些女生相互是朋友,每个女生也可以跟她 ...

  8. Keep in Mind

    Do not undermine your worth by comparing yourself with others.It is because we are different and eac ...

  9. jsp页面附件上传暂存的处理

    有没有遇到页面是新建一个新对象,对象里面需要上传附件,但是只有当对象保存时才将附件一同上传到数据库的情况? 这种情况的处理可以参考狐狸的思路: @jsp页面创建一个botton bn,该button的 ...

  10. 【搬运工】——初识Lua(转)

    使用 Lua 编写可嵌入式脚本 Lua 提供了高级抽象,却又没失去与硬件的关联. 虽然编译性编程语言和脚本语言各自具有自己独特的优点,但是如果我们使用这两种类型的语言来编写大型的应用程序会是什么样子呢 ...