关闭

hadoop2 namonode为HA 得到hadoop的active namenode具体地址代码

标签: hadoophaactive namenode
793人阅读 评论(0) 收藏 举报
分类:

因为某些原因需要从namenode HA中取到active namonode 的具体地址,写了以下的代码

package com.zhang.test;

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.hdfs.HAUtil;
import org.junit.Test;


public class ActiveNNAdd {
@Test
public void getNameNodeAdress() throws Exception{
Configuration conf = new Configuration();
FileSystem system=null;
try {
system = FileSystem.get(conf);
InetSocketAddress active = HAUtil.getAddressOfActive(system);
System.out.println("hdfs host:"+active.getHostName());  //hadoop001
System.out.println("hdfs port:"+active.getPort());      // 9000
InetAddress address = active.getAddress();
System.out.println("hdfs://"+address.getHostAddress()+":"+active.getPort());  //   hdfs://192.168.8.21:9000
} catch (IOException e) {
throw new Exception("获取active namenode的IP异常:"+e.getMessage());
}finally{
try {
if(system!=null){
system.close();
}
}  catch (IOException e) {
throw new Exception("FileSystem关闭时异常:"+e.getMessage());
}
}
}
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8648次
    • 积分:142
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档