java如何判断活动的namenode,Java NameNode.getNameNodeAddress方法代码示例

import org.apache.hadoop.hdfs.server.namenode.NameNode; //导入方法依赖的package包/类

/**

* DFS#isInSafeMode should check the ActiveNNs safemode in HA enabled cluster. HDFS-3507

*

* @throws Exception

*/

@Test

public void testIsInSafemode() throws Exception {

// Check for the standby nn without client failover.

NameNode nn2 = cluster.getNameNode(1);

assertTrue("nn2 should be in standby state", nn2.isStandbyState());

InetSocketAddress nameNodeAddress = nn2.getNameNodeAddress();

Configuration conf = new Configuration();

DistributedFileSystem dfs = new DistributedFileSystem();

try {

dfs.initialize(

URI.create("hdfs://" + nameNodeAddress.getHostName() + ":"

+ nameNodeAddress.getPort()), conf);

dfs.isInSafeMode();

fail("StandBy should throw exception for isInSafeMode");

} catch (IOException e) {

if (e instanceof RemoteException) {

IOException sbExcpetion = ((RemoteException) e).unwrapRemoteException();

assertTrue("StandBy nn should not support isInSafeMode",

sbExcpetion instanceof StandbyException);

} else {

throw e;

}

} finally {

if (null != dfs) {

dfs.close();

}

}

// Check with Client FailOver

cluster.transitionToStandby(0);

cluster.transitionToActive(1);

cluster.getNameNodeRpc(1).setSafeMode(SafeModeAction.SAFEMODE_ENTER, false);

DistributedFileSystem dfsWithFailOver = (DistributedFileSystem) fs;

assertTrue("ANN should be in SafeMode", dfsWithFailOver.isInSafeMode());

cluster.getNameNodeRpc(1).setSafeMode(SafeModeAction.SAFEMODE_LEAVE, false);

assertFalse("ANN should be out of SafeMode", dfsWithFailOver.isInSafeMode());

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值