linux部署superset核心是环境隔离、依赖可控、连接可靠:须用python 3.8/3.9虚拟环境,禁用系统python;安装apache-superset[all]并配置secret_key、sqlalchemy_database_uri;生产环境必须换mysql/postgresql元数据库,数据源url需含charset=utf8mb4等关键参数。

Linux 部署 Superset 的核心在于环境隔离、依赖可控、连接可靠。不推荐直接在系统 Python 下安装,也不建议跳过初始化校验;关键步骤错一步,后续登录失败、中文乱码、Hive 连不上等问题大概率出现。
准备 Python 环境与隔离运行空间
Superset 要求 Python 3.7+(推荐 3.8 或 3.9),且必须使用虚拟环境避免污染系统。CentOS/Ubuntu 系统常预装 Python 2.7,不可直接覆盖,应独立安装:
- Ubuntu:执行 sudo apt install python3.8 python3.8-venv python3.8-dev build-essential
- CentOS:先启用 EPEL,再用 yum install python38 python38-devel gcc openssl-devel libffi-devel
- 创建并激活环境:python3.8 -m venv superset_env && source superset_env/bin/activate
- 升级 pip 和 setuptools:pip install --upgrade pip setuptools
安装 Superset 并完成基础初始化
安装命令需包含全部可选依赖,否则后续连 Hive/MySQL 会缺驱动:
Python 3.14.2是Python编程语言在2025年12月5日发布的稳定版本,属于3.14系列的第二个维护更新。该版本包含了18项修复,重点解决了多进程、数据类及正则表达式等模块的回归问题,并修复了CVE-2025-12084等安全漏洞。此版本标志着自由线程模式(移除GIL)正式获得官方支持,是Python发展的重要里程碑。
- 运行 pip install apache-superset[all] -i https://pypi.tuna.tsinghua.edu.cn/simple/
- 生成密钥:openssl rand -base64 42,保存备用
- 创建配置文件 superset_config.py,至少包含:
SECRET_KEY = '上面生成的密钥'
WTF_CSRF_SECRET_KEY = '同上'
SQLALCHEMY_DATABASE_URI = 'sqlite:///superset.db' - 设置环境变量:export FLASK_APP=superset && export SUPERSET_CONFIG_PATH=./superset_config.py
- 初始化数据库:superset db upgrade(若报 markupsafe 错误,执行 pip install markupsafe==2.0.1)
- 创建管理员:superset fab create-admin,按提示输入用户名、邮箱、密码
- 初始化权限:superset init
连接外部数据源的关键配置
元数据库用 SQLite 仅适合测试;生产务必换 MySQL 或 PostgreSQL。连接业务数据源时,URL 格式和参数不能省略:
- MySQL 示例:mysql+pymysql://user:pass@10.10.20.30:3306/superset?charset=utf8mb4&connect_timeout=30(charset=utf8mb4 必须写,否则 emoji 和中文字段写入失败)
- Hive 示例(Kerberos):hive://hive@namenode:10000/default?auth=KERBEROS&kerberos_service_name=hive(先确认 klist 有有效票据,且 telnet namenode 10000 可通)
- 连接失败别只看 Web 提示“Connection failed”,要查终端日志或 superset run --debug 输出
启动服务与访问验证
默认端口 8088,但生产环境建议绑定内网 IP 并配反向代理:
- 启动命令:superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger
- 如需外网访问,确保云服务器安全组/防火墙放行 8088(或改用 Nginx 代理到 80/443)
- 浏览器打开 http://服务器IP:8088,用创建的管理员账号登录
- 首次登录后,可进 Settings → Roles 分配数据源访问权限,避免“no datasource found”










