Kerberos常见问题

<< Click to Display Table of Contents >>

当前位置:  数据准备 > 数据源 > SQL数据源 > Kerberos 认证 

Kerberos常见问题

复制链接

1.Kerberos错误排查基本方法

1.1 检查驱动

一般情况下kerberos的驱动都是由很多jar组成。

1.2 检查数据源配置项

主要检查各项配置文件是否正确。

1.3 检查主机时间

这一步非常重要,一定要确保永洪主机和KDC主机时间(包含时区)一致。

1.4 核对keytab文件和用户名

这是本次遇到的新问题,建议大家以后都让客户提供最新的keytab文件。

1.5 核对jaas文件

一定要注意的是keyTab和principal,在本次排查中也发现需要配置useKeyTab=true。

Client {

 com.sun.security.auth.module.Krb5LoginModule required

 useKeyTab=true

 keyTab="/app/user.keytab"      --同密钥文件路径

 storeKey=true

 useTicketCache=false

 principal="yonghong@HADOOP.COM";   --同用户名

     debug=true

};

(加粗字体为本地环境值)

2.常见报错

以下为几种永洪BI关于Kerbero连接出现的常见报错的可能原因和解决方案。

出现报错,提示中包含“org.apache.hadoop.conf.Configuration”,“NoClassDefFoundError:org/apache/thrift/protocol”。

报错原因:hive驱动Jar不全;

可用解决方案:上传完整的hive驱动。

出现报错,提示中包含“Cannot obtain password for user”。

报错原因:用户的jaas.conf中配置的是不使用keytab登录,jaas.conf中的useKeyTab属性设置为false或useKeyTab属性设置为true,keyTab属性未设置;

可用解决方案:更新jaas文件。

出现报错,提示中包含“Unable to read HiveServer2 configs from ZooKeeper”。

报错原因:jaas文件里面配置的principal和数据源的用户名不一致。

可用解决方案:更新jaas文件。

出现报错,提示中包含“Unsupported mechanism type PLAIN”。

报错原因:永洪BI使用非Kerberos登录访问设置了Kerberos的数据库;

可用解决方案:改为Kerberos访问。

出现报错,提示中包含“over max connections”。

报错原因:业务量大导致连接HiveServer单个节点的连接数超过了最大连接数,需要调大连接HiveServer实例的最大连接数;

可用解决方案:登录MRS Manager页面,访问“服务管理 > Hive > 服务配置 > 参数类别(选择全部配置)”,搜索        hive.server.session.control.maxconnections配置项,修改hive.server.session.control.maxconnections配置的值到合适值,不能超过1000。保存配置并重启受影响的服务或者实例。

连接HBase时出现“Ensure that config phoenix.schema.isNamespaceMappingEnabled is consistent on client and server”。

报错原因:在连接时设置了 phoenix.schema.isNamespaceMappingEnabled 为 true;

可用解决方案:

方案1: 推荐使用该方案,修改FusionInsight的配置,配置可以参考以下文档:

https://blog.csdn.net/zhangshenghang/article/details/97892067。

方案2:修改永洪BI配置:

先关闭永洪服务器,修改/opt/YH/vividime/bihome/bi.properties,增加如下配置:

phoenix.schema.isNamespaceMappingEnabled=false

关于namespace mapping的详细介绍参见如下文档:http://phoenix.apache.org/namspace_mapping.html。

3.永洪BI连接多KDC方案

将多个 KDC 的信息合并到一个 krb5.conf 中,将该文件路径配置到永洪BI【数据源】模块的【krb5文件路径】项

在 [realms] 条目下增加多个 Realm 对应的 KDC 信息。

示例:

[realms]

HADOOP.COM = {

 kdc = 192.168.1.228

 admin_server = 192.168.1.228

}

 

 HADOOP2.COM = {

 kdc = 192.168.1.223

 admin_server = 192.168.1.223

}

在 [domain_realm] 配置项下增加多个 domian realm 。

示例:

[domain_realm]

.hadoop.com = HADOOP.COM

hadoop.com = HADOOP.COM

 

.hadoop2.com = HADOOP2.COM

hadoop2.com = HADOOP2.COM

[libdefaults] 配置项下的default_realm 可以配置任意一个 KDC 的 realm 。

在配置永洪数据源时,所有的 principal 都要指定 realm 。

示例:

hive/yonghong.com/HADOOP.COM

错误实例:

hive/yonghong.com

hive