为了账号安全,请及时绑定邮箱和手机立即绑定

Hadoop - 高可用服务主备状态查询

标签:
Hadoop

在使用 HDFS NameNode 和 Yarn ResourceManager 等具有高可用性的服务时,通常会遇到的一个问题是:判断哪个是主节点(active),哪个是备用节点(standby)。

命令行查询主备状态

一般常用的服务都会提供自带的命令行(如 hdfs cli, yarn cli 等),通过 特定命令+节点id 可以判断主备状态。

a. HDFS NameNode 主备查询命令: hdfs haadmin

CDH中查看HDFS的各项参数,默认在路径/etc/hadoop/conf.cloudera.hdfs/hdfs-site.xml下。在hdfs-site.xml文件中,可以找到高可用相关的配置:

  <property>
    <name>dfs.ha.namenodes.sdg</name>
    <value>namenode25,namenode30</value>
  </property>

从中可以看到,有两个namenode,一个是主节点(active),一个是备用节点(standby)。
如果使用命令行,查看主备的方法是用hdfs haadmin -getServiceState命令,如:

$ hdfs haadmin -getServiceState namenode30active
$ hdfs haadmin -getServiceState namenode25
standby

记忆方法:输入hdfs haadmin 即可获得命令提示

$ hdfs haadmin
Usage: DFSHAAdmin [-ns <nameserviceId>]
    [-transitionToActive <serviceId> [--forceactive]]
    [-transitionToStandby <serviceId>]
    [-failover [--forcefence] [--forceactive] <serviceId> <serviceId>]
    [-getServiceState <serviceId>]
    [-checkHealth <serviceId>]
    [-help <command>]
b. Yarn ResourceManager 主备查询命令: yarn rmadmin

CDH集群中,yarn-site.xml位于/etc/hadoop/conf.cloudera.yarn/yarn-site.xml,从中可以查看到:

  <property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm201,rm48</value>
  </property>

使用命令 yarn rmadmin -getServiceState 可以查看主备状态:

$ yarn rmadmin -getServiceState rm201
standby
$ yarn rmadmin -getServiceState rm48
active

记忆方法同上。

Java API 查询主备状态

用如果使用Java API,可以首先通过Configuration类获取配置信息,之后使用特定方法获取节点主备状态。
以HDFS NameNode为例,可以通过addResource()方法读取配置信息,之后用HAUtil.getAddressOfActive()方法获取节点主备信息。
例:可使用如下代码输出HDFS NameNode active的节点地址

  Configuration conf = new Configuration();
  conf.addResource(new Path("/etc/hadoop/conf.cloudera.hdfs/core-site.xml"));
  conf.addResource(new Path("/etc/hadoop/conf.cloudera.hdfs/hdfs-site.xml"));
  FileSystem fileSystem = FileSystem.get(conf);
  System.out.println(HAUtil.getAddressOfActive(fileSystem).toString());



作者:OldChicken_
链接:https://www.jianshu.com/p/89090bd2b66c


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
40
获赞与收藏
127

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消