java连接有kerberos认证的hbase

最近有这个需求,因为kerberos认证,一直连不上,通过很多大佬的帮忙,终于成功连上,在此分享下自己的一点点收获

话不多说,

1.需要hbase-site.xml这个配置文件,里面有很多配置属性是需要的,需要将这个文件放到根目录下;很多属性因为在这个配置文件里有了,所以不用设置,但是你设置了,会以你设置的为准,这里面的只是初始化。

2.keytab文件

3.krb5.conf文件

private static final String KEYTAB_FILE =CLASS_LOADER.getResource("kerberos/smokeuser.headless.keytab").getPath();

private static final String KERB_CONF =CLASS_LOADER.getResource("kerberos/krb5.conf").getPath();
    private static Connection connection =null;
    private static Admin admin =null;
    public static List<String> list=null;

static {
        System.setProperty("java.security.krb5.conf", KERB_CONF);
        System.setProperty("sun.security.krb5.debug", "true");

        final Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum", "zookenode1,zookenode2,zookenode3");
        conf.set("hbase.zookeeper.property.clientPort", "2181");
        conf.set("hadoop.security.authentication", "kerberos");
        conf.set("hbase.security.authentication", "kerberos");
        conf.set("zookeeper.znode.parent", "/hbase-secure");
        conf.set("hbase.master.kerberos.principal", "hbase/xxxx1@xxx.COM");
        UserGroupInformation.setConfiguration(conf);
        try {
            UserGroupInformation ugi = UserGroupInformation.loginUserFromKeytabAndReturnUGI("xxxx2@xxx.COM", KEYTAB_FILE);
            UserGroupInformation.setLoginUser(ugi);
            HBaseAdmin.available(conf);
            connection = ConnectionFactory.createConnection(conf);
            admin = connection.getAdmin();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

注意 :principal的值hbase/xxxx1@xxx.COM为主hbase主节点;keytab文件和xxxx2@xxx.COM需要对应;我这里用的hbase不是1.xx版本的,是2.xx版本的,所以是 HBaseAdmin.available(conf);方法;

到此,应该没有多大问题了,可以通过admin和connection愉快的操作hbase了。

 

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值