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 绑定。

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执行。