在hbase 激活kerberos 下opentsdb的使用

Opentsdb Kerberos认证
本文介绍如何在Opentsdb中配置Kerberos认证,包括关键的代码片段和依赖的Maven包版本。解决了因公司大数据集群升级Kerberos导致Opentsdb无法使用的问题。

最近公司大数据集群统一升级了 kerberos,那原先 的opentsdb就不能使用了,需要使用keytab方式登陆验证。

在百度找了好久没找到解决方案,还是组里勇哥看opentsdb源码才发现opentsdb怎么验证keytab.

下面是具体代码片断:

未使用kerberos 时候,直接使用下面的旧代码:

HBaseClient hbaseClient = new HBaseClient(zookeeper);

激活了kerberos需要:
 System.setProperty("java.security.auth.login.config", "D:/kbs/ksm_jaas.conf");
System.setProperty("zookeeper.sasl.client", "false");
//下面行只在本地打开
System.setProperty("java.security.krb5.conf", "D:/kbs/krb5.conf");

org.hbase.async.Config asyncConfig = new org.hbase.async.Config();
asyncConfig.overrideConfig("hbase.zookeeper.quorum", zookeeper);
asyncConfig.overrideConfig("hbase.security.auth.enable", "true");
asyncConfig.overrideConfig("hbase.security.authentication", "kerberos");
asyncConfig.overrideConfig("hbase.sasl.clientconfig", "Client");
asyncConfig.overrideConfig("hbase.kerberos.regionserver.principal", "hbase/_HOST@HTSEC.COM");
HBaseClient hbaseClient = new HBaseClient(asyncConfig);
//认证
KerberosClientAuthProvider authProvider = new KerberosClientAuthProvider(hbaseClient);

需要注意的是maven jar包,低版本的opentsdb的确不支持kerberos

<dependency>
<groupId>net.opentsdb</groupId>
<artifactId>opentsdb</artifactId>
<version>2.3.0-RC1</version>
</dependency>
<dependency>
<groupId>org.hbase</groupId>
<artifactId>asynchbase</artifactId>
<version>1.7.2</version>
</dependency>

 

转载于:https://www.cnblogs.com/zuoql/p/8645611.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值