ODBC Hive测试遇‘Credential cache is empty’错误,求排查经验
排查ODBC Hive连接时的"Credential cache is empty"错误
错误详情
ODBC Hive - Test Results
[Cloudera][Hardy] (34) Error from server: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Credential cache is empty).
已执行的配置测试
- 生成Kerberos票据:
kinit.exe -k -t app_store.keytab app_store@HW.PROD.BDP(注:原命令末尾多余的单引号需移除) - 检查缓存中的Kerberos票据:
klist.exe - 配置环境变量:
KRB5CCNAME=C:\cache\krb5cache和KRB5_CONFIG=c:\ProgramData\MIT\Kerberos5\krb5.ini
排查步骤
确认票据生成有效性
- 执行
klist.exe后,检查输出是否包含app_store@HW.PROD.BDP的有效票据,重点看Expires时间是否未过期。若klist显示缓存为空,说明kinit执行失败:- 核对keytab文件路径是否正确,确保运行命令的用户有该文件的读取权限
- 移除
kinit命令末尾多余的单引号,重新执行:kinit.exe -k -t app_store.keytab app_store@HW.PROD.BDP
- 执行
验证环境变量生效范围
- 确保
KRB5CCNAME和KRB5_CONFIG是系统级环境变量,而非仅命令行临时设置。若为临时设置,需重启ODBC测试工具或相关进程;若为系统级配置,建议重启机器确保生效 - 检查
KRB5CCNAME指定的C:\cache目录是否存在,且运行ODBC驱动的用户拥有读写权限
- 确保
检查ODBC驱动Kerberos配置
- 打开ODBC数据源管理器,进入对应Hive DSN的配置界面:
- 确认Kerberos principal与keytab对应的值
app_store@HW.PROD.BDP一致 - 勾选Kerberos认证选项,确保keytab路径配置正确
- 部分Cloudera ODBC驱动需手动指定缓存路径,填写
C:\cache\krb5cache与KRB5CCNAME保持一致
- 确认Kerberos principal与keytab对应的值
- 打开ODBC数据源管理器,进入对应Hive DSN的配置界面:
校验krb5.ini配置
- 打开
c:\ProgramData\MIT\Kerberos5\krb5.ini,确认:[realms]段正确配置了HW.PROD.BDP域的KDC地址,示例格式:HW.PROD.BDP = { kdc = your-kdc-server.hw.prod.bdp admin_server = your-kdc-server.hw.prod.bdp default_domain = hw.prod.bdp }[domain_realm]段完成正确映射,比如.hw.prod.bdp = HW.PROD.BDP
- 打开
测试Kerberos基础连通性
- 生成票据后执行
kvno app_store@HW.PROD.BDP,检查能否获取服务票据,验证Kerberos环境本身是否正常
- 生成票据后执行
内容的提问来源于stack exchange,提问作者user20531732
相关产品推荐
相关产品推荐

