ambari中hive启用kerberos进行jdbc连接操作正确方式

Ambari中启用Kerberos后Hive JDBC连接问题解析
启用Kerberos后的Hive JDBC连接可通过直接连接或Zookeeper进行。使用Zookeeper时,需注意配置的Zookeeper地址必须为域名,而非IP,否则会出现SASL认证失败的问题。错误信息显示‘Server not found in Kerberos database’,解决办法是在代码中设置‘sun.security.krb5.debug’属性为true,以便进一步排查问题。

启用kerberos后,有两种操作方式连接hive;

1、直接连接:

jdbc:hive2://c2eng58:10000/default;principal=hive/c2eng58@EXAMPLE.COM

2、通过zookerper连接

jdbc:hive2://c2eng47:2181,c2eng48:2181,c2eng58:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;

如果设置了JaasConf,注意:此处ambari中填写的zookerper必须为域名地址,不能为ip地址。否则会提示

2018-07-30 16:35:39,087 ERROR [main-SendThread(172.17.81.48:2181)]: An error: (java.security.PrivilegedActionException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Server not found in Kerberos database (7) - LOOKING_UP_SERVER)]) occurred when evaluating Zookeeper Quorum Member's  received SASL token. Zookeeper Client will go to AUTH_FAILED state. org.apache.zookeeper.client.ZooKeeperSaslClient(388)
2018-07-30 16:35:39,090 ERROR [main-SendThread(172.17.81.48:2181)]: SASL authentication with Zookeeper Quorum member failed: javax.security.

Ambari 中清理 Hive 客户端的配置或缓存涉及多个步骤,包括清除本地缓存目录、重置服务配置以及可能需要重新注册主机等操作。以下为详细说明: ### ### 清理 Hive 客户端本地缓存 Hive 客户端会在节点上生成一些临时文件和缓存数据,通常位于 `/var/lib/ambari-agent/cache/common-services/HIVE` 路径下。可以通过手动删除该路径下的内容来清除缓存信息。 ```bash rm -rf /var/lib/ambari-agent/cache/common-services/HIVE/* ``` 此操作可确保客户端不会加载旧版本的配置或脚本,适用于升级失败或配置不生效的场景[^2]。 ### ### 通过 Ambari 界面重置 Hive 配置 Ambari 提供了服务级别的配置管理功能,用户可以在 Web UI 中进入 Hive 服务页面,选择“Configs”选项卡,并点击“Revert All”以恢复默认配置。这将移除所有自定义修改并还原到初始状态。 若希望更彻底地清理配置,可考虑先卸载 Hive 服务再重新安装。在 Ambari Web 界面中进入 Hive 服务详情页,选择 “Delete Service” 删除服务实例。注意,此操作不会自动删除元数据库或 HDFS 上的数据目录,但会移除服务的所有配置记录。 ### ### 停止并清理 Hive 客户端服务 对于部署了 Hive 客户端组件的主机,建议在执行清理前停止相关服务进程。可以使用如下命令停止 Hive 客户端: ```bash ambari-agent stop ``` 随后,删除客户端缓存目录(如 `/var/lib/ambari-agent/cache` 下与 Hive 相关的部分),然后重启 agent 服务以应用更改: ```bash ambari-agent start ``` 这种方式适合用于修复因缓存损坏导致的服务异常问题[^3]。 ### ### 检查并更新 Hive 元数据配置 如果 Hive 客户端连接的是远程元数据库(如 MySQL),则还需要确认 `hive-site.xml` 中的数据库连接信息是否正确。可以通过 Ambari 的配置界面编辑 JDBC URL、用户名和密码等参数,确保客户端能够正常访问元数据存储。 此外,若怀疑元数据本身存在冲突或损坏,可通过运行 Hive Schema 工具进行修复: ```bash schematool -dbType mysql -validate ``` 该命令将验证当前数据库结构是否与 Hive 版本兼容,必要时可执行 `-upgradeSchema` 参数进行升级[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值