Superset 本身没有提供链接 Hive的想先,可以使用 PyHiveImpyla 这类专门的适配器库来与 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 绑定。

二、重启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执行。