Superset 本身没有提供链接 Hive的想先,可以使用 PyHive 或 Impyla 这类专门的适配器库来与 HiveServer2 通信。
一:环境准备(安装连接器驱动)
首先,需要在运行 Superset 的 Python 环境中安装必要的 Python 库。
推荐使用 PyHive 方式,因为它更通用和稳定。
1. 安装 PyHive 及其依赖
打开终端,进入您的 Superset 虚拟环境(如果使用的话),如:conda activate py_superset5v2,然后执行以下命令:
# 安装 PyHive,它会自动安装依赖的 SQLAlchemy 等库
pip install "pyhive[hive]"
#** 如果遇到 sasl 相关错误,使用 conda 安装sasl **
conda install -c conda-forge sasl
pip install "pyhive[hive]"关键包说明(也可以单独安装下面的包):
pyhive: 主要的 Hive 连接器。thrift: HiveServer2 使用的 RPC 框架。thrift_sasl: 支持 SASL 认证(如 Kerberos, LDAP, PLAIN)。sasl: SASL 库的 Python 绑定。
2. (可选)安装 Impyla
作为备选方案,您也可以使用 Impyla。
pip install impyla二、重启superset
安装好pyhive以后,需要重启superset使配置生效。
sudo systemctl stop superset.service
sudo systemctl start superset.service
三、配置hiveserver链接
使用 SQLAlchemy URI 格式来连接数据库。
通用 URI 格式
hive://[username:password@]<host>[:<port>]/[database]?<query_parameters>场景 1:无认证或 LDAP 认证
# 无认证
hive://hive_server_host:10000/default
# LDAP 认证
hive://my_username:my_password@hive_server_host:10000/default场景 2:Kerberos 认证
Kerberos 配置相对复杂,URI 格式如下:
hive://hive_server_host:10000/default?auth=KERBEROS&kerberos_service_name=hive此外,还需要确保运行 Superset 的服务器上已经配置了有效的 Kerberos 票据。通常可以通过 kinit 命令获取。
具体配置步骤如下:
1、确保已经启动了hiveserver2服务。
2、在superset中依次选择:设置-》数据库连接

点击右侧的:【添加数据库】按钮

选择apache hive:

输入链接:hive://localhost:10000/default 并点击【连接】按钮即可。

四、使用
在sql lab中选择配置的连接和库表,然后写sql执行。

评论