因为不懂kerberos,当然到现在也不懂,遇到的几点坑,分享一下,有问题欢迎大家纠正
两点坑
conf.set("kerberos.principal" ,"hbase/_HOST@AC1.HBASE.COM" );
conf.set("hbase.master.kerberos.principal","hbase/_HOST@AC1.HBASE.COM");
conf.set("hbase.regionserver.kerberos.principal","hbase/_HOST@AC1.HBASE.COM");
这三个参数需要设置为 hbase配置文件中的hbase.master.kerberos.principal的配置,例如下图
取这个参数才能运行
第二点UserGroupInformation.loginUserFromKeytab中的user是你hbase数据库里面的用户名,与上面的principal不是一样的,记住不是一样的格式
附一段代码 开箱即用 有问题欢迎留言 准备攻克一下 这个kerberos 有点意思
public class App
{
private static Configurationconf =null;
static Connectionconn =null;
static {
// 这个配置文件主要是记录 kerberos的相关配置信息,例如KDC是哪个IP?默认的realm是哪个?
// 如果没有这个配置文件这边