我正在尝试使用 pyhive 库在 python 中运行 presto 查询,但最大重试次数错误即将到来。我在本地(笔记本电脑(的 jupyter 笔记本中运行它。我认为它无法连接到presto节点。我正在使用 Azure hdinsight 群集并在头节点上安装了 presto 应用程序(使用星爆分发(。我使用了群集用户名和密码,也尝试了头节点 ssh 用户名和密码,但没有任何效果。下面是我的代码:
from pyhive import presto
conn= presto.connect(
host='clustername-ssh.azurehdinsight.net',
port=8085,
username='sshuser'
password='sshpassword',
protocol='https'
).cursor()
conn.execute('SELECT * FROM hive.default.parquettest limit 1')
我得到的错误是:
连接错误: HTTPConnectionPool(host='sm-hdinsight01-ssh.azurehdinsight.net', port=8085(:超出 url 的最大重试次数:/v1/语句(由 NewConnectionError(': 无法建立新连接: [Errno 110] 连接超时',((
但是当我在头节点的终端中运行它时,它可以工作:
from pyhive import presto
conn= presto.connect(
host='localhost',
port=8085).cursor()
conn.execute('SELECT * FROM hive.default.parquettest limit 1')
我想我在这里错过了一些关键的东西。 请帮忙。
听起来像是一个权限/身份验证问题。 我目前正在我的本地机器上使用 Jupyter 笔记本 t 使用 prestodb
库像这样查询公司 Presto 集群。
所以基本上:
import prestodb
conn=prestodb.dbapi.connect(
host='presto.bar.foo.com',
port=80, user='foo',
password='bar'
catalog='hive',
schema='default',
)
cur = conn.cursor()
cur.execute(
'SELECT * FROM "schema"."db" limit 10')
records = cur.fetchall()
print(records[0])