Superset 3.1.0配置

造相-Z-Image-Turbo 亚洲美女LoRA

造相-Z-Image-Turbo 亚洲美女LoRA

图片生成
Conda
Cuda

基于 **Z-Image-Turbo** 的图片生成 Web 服务,新增对 LoRA laonansheng/Asian-beauty-Z-Image-Turbo-Tongyi-MAI-v1.0 的按需加载支持与严格的后端内容策略

CentOS7 + Miniconda + Superset 3.1.0 + MySQL(mysqlclient) 的实战配置全过程精要版,附带踩坑与修复要点,便于以后复用。


1) 目标与环境

  • OS:CentOS 7

  • Python:Miniconda 环境(python=3.9)

  • Superset:3.1.0(用国内 TUNA 镜像安装)

  • Metadata:MySQL(坚持用 mysqlclient,不用 PyMySQL)

  • 运行方式:命令行 / Gunicorn;提供了启停脚本


2) 国内镜像

# conda
cat > ~/.condarc <<'YAML'
channels:
  - conda-forge
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
YAML
conda clean -i

# pip
mkdir -p ~/.pip
cat > ~/.pip/pip.conf <<'INI'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
timeout = 120
trusted-host = pypi.tuna.tsinghua.edu.cn
INI

3) Conda 环境 & 基础依赖

conda create -n superset python=3.9 -y
conda activate superset

# 系统依赖(编译、SASL、OpenSSL等按需)
sudo yum install -y gcc gcc-c++ make libffi-devel python3-devel pkgconfig \
                    openssl-devel zlib-devel

4) MySQL 开发包(为 mysqlclient 做准备)

遇到过 mariadb-devel 5.5 与 MySQL 8 冲突 → 只装 MySQL 官方 8.0 的 devel,并解决 GPG key 不匹配:

# 导入 MySQL GPG keys(含 2023/2024,修复 a8d3785c)
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql || true
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022 || true
sudo curl -fsSL https://repo.mysql.com/RPM-GPG-KEY-mysql-2023 | sudo rpm --import -
sudo curl -fsSL https://repo.mysql.com/RPM-GPG-KEY-mysql-2024 | sudo rpm --import -

sudo yum clean all
sudo yum makecache fast --enablerepo=mysql80-community
sudo yum install -y mysql-community-devel mysql-community-libs mysql-community-libs-compat

备选:mariadb-connector-c-devel 也可用于编译 mysqlclient,但不要装 mariadb-devel(会拉 5.5 全家桶)。


5) 安装 Superset & 解决依赖坑

pip install --upgrade pip setuptools wheel
pip install "apache-superset==3.1.0" -i https://pypi.tuna.tsinghua.edu.cn/simple

关键坑与修复

  • apsw 编译失败(C99):CentOS7 默认 GCC 4.8 非 C99

    • 方案1:export CFLAGS="$CFLAGS -std=gnu99" 再编译 apsw(或在 devtoolset-8 下编译)

    • 方案2:如果暂时不用 Google Sheets(shillelagh),可卸载 shillelagh*/apsw

  • marshmallow 4.x 不兼容:Superset 3.1.0 需 3.x

    pip install "marshmallow>=3.20,<4" --force-reinstall
    
  • Pillow 告警(缩略图):pip install pillow


6) mysqlclient 安装 & “静态 TLS block” 修复

mysqlclient 安装后,运行时出现:
cannot allocate memory in static TLS block(conda 自带 libstdc++ 与 CentOS7 冲突)。

解决:预加载系统库

export LD_PRELOAD=/usr/lib64/libstdc++.so.6:/usr/lib64/libgcc_s.so.1
export LD_LIBRARY_PATH=/usr/lib64:/lib64:$LD_LIBRARY_PATH

# 自检
python - <<'PY'
import MySQLdb, os; print("OK", os.path.realpath(MySQLdb._mysql.__file__))
PY

备选:用 conda-forgemysqlclient libstdcxx-ng libgcc-ng,或在 devtoolset-8 下重编。


7) Superset 配置(MySQL + mysqlclient)

~/.superset/superset_config.py

SQLALCHEMY_DATABASE_URI = "mysql+mysqlclient://superset:YourStrongPass@hadoop102:3306/superset?charset=utf8mb4"
SQLALCHEMY_ENGINE_OPTIONS = {"pool_pre_ping": True, "pool_recycle": 3600}

# 强制设置 SECRET_KEY(必须)
SECRET_KEY = "一长串随机字符串"

# (可选)Redis:去掉 Flask-Limiter 内存存储告警 & 启用缓存
# REDIS_URL = "redis://127.0.0.1:6379/0"
# RATELIMIT_STORAGE_URI = REDIS_URL
# CACHE_CONFIG = {"CACHE_TYPE": "RedisCache","CACHE_DEFAULT_TIMEOUT": 300,"CACHE_KEY_PREFIX": "superset_","CACHE_REDIS_URL": REDIS_URL}
# DATA_CACHE_CONFIG = CACHE_CONFIG

8) 初始化 & 启动

export SUPERSET_CONFIG_PATH=$HOME/.superset/superset_config.py
export FLASK_APP="superset.app:create_app()"
export LD_PRELOAD=/usr/lib64/libstdc++.so.6:/usr/lib64/libgcc_s.so.1
export LD_LIBRARY_PATH=/usr/lib64:/lib64:$LD_LIBRARY_PATH

# 迁移
superset db upgrade

# 创建管理员(如未创建)
superset fab create-admin

# 初始化
superset init

# 启动(开发模式)
superset run -h 0.0.0.0 -p 8088

9) 启停脚本(你已部署)

  • 路径:/home/yz/bin/superset.sh

  • 功能:start|stop|restart|status|logs

  • 特点:自动激活 conda、预加载系统 libstdc++、优先 Gunicorn(装了 gevent 就用 gevent,否则 sync)

  • 日志目录:~/superset-logs/;PID:~/superset-run/superset.pid

示例:

/home/yz/bin/superset.sh start
/home/yz/bin/superset.sh status
/home/yz/bin/superset.sh logs
/home/yz/bin/superset.sh stop

若用 systemd,服务文件要包含 SUPERSET_CONFIG_PATHFLASK_APPLD_PRELOADLD_LIBRARY_PATH


10) 最容易踩的坑(备忘)

  • mariadb-devel 与 MySQL 8 冲突 → 只装 mysql-community-devel

  • MySQL rpm GPG key 不匹配(比如 a8d3785c)→ 导入 RPM-GPG-KEY-mysql-2023/2024

  • mysqlclient 编译找不到 .pc → 安装 mysql-community-devel + pkgconfig

  • 运行时报 static TLS blockLD_PRELOAD 预加载系统 libstdc++/libgcc

  • SECRET_KEY 未设置 → 启动直接拒绝

  • marshmallow 4.xminLength → 降级到 <4

  • apsw C99 编译错误 → CFLAGS=-std=gnu99 或跳过 shillelagh

  • Flask 应用未找到/环境变量脏 → 用 FLASK_APP="superset.app:create_app()" 内联执行


这就是从“净环境”到“可用生产启动”的完整闭环。如果你要把 Redis 缓存Gunicorn + systemd 固化,我可以直接把你机器的最终路径/账号/端口拼好一份服务单给你。

您可能感兴趣的与本文相关的镜像

造相-Z-Image-Turbo 亚洲美女LoRA

造相-Z-Image-Turbo 亚洲美女LoRA

图片生成
Conda
Cuda

基于 **Z-Image-Turbo** 的图片生成 Web 服务,新增对 LoRA laonansheng/Asian-beauty-Z-Image-Turbo-Tongyi-MAI-v1.0 的按需加载支持与严格的后端内容策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值