对于hadoop的HA高可用多个namenode连接地址判断的工具类

package HaUtil;

 

 

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FileStatus;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.FileUtil;

import org.apache.hadoop.fs.Path;

 

 

public class HaUtil {

        public static void confset(Configuration conf) {  

            Path[] paths=null;

            try {

 

                conf.set("fs.defaultFS", "hdfs://hh1:8020");

                //必须写下面的代码必须还要存在一个遍历hdfs的一个目录,因为没有这个遍历不出现异常的,name就不会走catch语句了

               

                FileSystem hdfs = FileSystem.get(conf);

                 //System.out.println("测试1");

             //判断前天目录存在的话,且part文件的大小不是0的话吧a改成1

             FileStatus[] fs = hdfs.listStatus(new Path("/cgi3/"));

              paths = FileUtil.stat2Paths(fs);

              

                 //执行下面的打印长度,要是没有连接上hdfs,就会出现空指针异常,会跳转catch的。必须存在这个代码

                 System.out.println("测试1");

                 System.out.println(paths.length+"");

                 System.out.println("测试2");

 

         } catch (Exception e) {

             // try执行完成执行catch里面的语句(try连代码出现异常就执行catch里面的语句)

             //上面出现异常说明没有连接成功,这个时候更换一下namenode的连接地址

                conf.set("fs.defaultFS", "hdfs://hh:8020");

               

 

         }

           

        }

       

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值