CDH报错了,Trying to connect to metastore with URI thrift
时间: 2024-03-02 12:54:24 浏览: 190
CDH环境搭建步骤及如何使用C++进行开发
如果你使用的是 Cloudera CDH 发行版,连接 Hive metastore 时遇到 `Trying to connect to metastore with URI thrift` 错误,可能是由于 Cloudera 默认禁用了 metastore thrift 服务导致的。你可以尝试以下两种方法解决这个问题:
1. 启用 metastore thrift 服务
在 Cloudera Manager 中找到 Hive 服务,进入 Hive 配置页面,找到并启用 `Hive Metastore Service Thrift Bind Host` 和 `Hive Metastore Thrift Port` 选项。启用后,重启 Hive 服务。
2. 使用 HiveServer2 连接
如果启用 metastore thrift 服务后仍无法连接,可以尝试使用 HiveServer2 替代 thrift 进行连接。修改代码如下:
```python
from pyhive import hive
# 连接到 HiveServer2
conn = hive.connect(host='<hiveserver2_host>',
port=10000,
username='<username>',
password='<password>',
database='<database_name>',
auth='CUSTOM')
# 执行查询
cursor = conn.cursor()
cursor.execute('SELECT * FROM <table_name>')
# 获取结果
result = cursor.fetchall()
# 关闭连接
cursor.close()
conn.close()
```
需要将 `<hiveserver2_host>` 替换为 HiveServer2 的主机名或 IP 地址。另外,需要将 `auth` 参数设为 `CUSTOM`,这样才能使用 `<username>` 和 `<password>` 进行身份验证。
阅读全文