我正在尝试使用 Python 与 hbase throght knox 进行交互,在 python 中,管理员给出了 hive、hbase 和 spark 的 knox API 端点列表,例如:
https://knox-devl.www.mysite.com:9042/gateway/MYSITEHDO/hbaseversion/cluster
现在,由于我使用的是 Python 的 happybase 库,我的连接代码是
import happybase
connection=happybase.Connection('https://knox-devl.www.mysite.com/gateway/MYSITEHDO/hbaseversion/cluster',port=9042)
connection.open()
print(connection.tables())
它显示的错误是:
thriftpy.transport.TTransportException: TTransportException(message="Could not connect to ('https://knox-devl.www.mysite.com/gateway/MYSITEHDO/hbaseversion/cluster', 9042)", type=1)
我也试过 Phoenixdb lib
import phoenixdb
database_url = 'https://knox-devl.www.mysite.com:9042/gateway/MYSITEHDO/hbaseversion/cluster'
conn = phoenixdb.connect(database_url, autocommit=True)
cursor = conn.cursor()
cursor.execute("SHOW tables")
但我收到另一个错误:
phoenixdb.errors.InterfaceError: ('RPC request failed', None, None, BadStatusLine("''",))
Exception phoenixdb.errors.InterfaceError: InterfaceError('RPC request failed', None, None, BadStatusLine("''",)) in <bound method Connection.__del__ of <phoenixdb.connection.Connection object at 0x10bc97d90>> ignored
我可以通过 curl 获取一些数据的唯一方法:
curl -i -k -u guest:guest-password 'https://knox-devl.www.mysite.com:9042/gateway/MYSITEHDO/hbaseversion/cluster'
但是那里没有 SQL 命令。
有没有人知道如何执行此操作或我在这里缺少的东西,例如要求不同的 URL 或在集群上启用某些东西?