superset安装使用说明-续

本文介绍了在阿里云CentOS7.9主机上安装Superset2.0.1的步骤,包括环境准备、Python库版本问题、MySQL8.0的安装和配置、数据库连接、example数据加载以及使用gunicorn启动服务等,特别强调了在安装过程中遇到的错误及其解决方案。
部署运行你感兴趣的模型镜像

系列文章目录

superset 1.4的安装请参考superset安装使用说明_冰帆<的博客-优快云博客


文章目录

前言

申请了一台阿里云云主机,今天从头安装重新安装下superset,旧版本的请参考:superset安装使用说明_冰帆<的博客-优快云博客

本文只针对安装过程中出现的问题进行简要介绍。


一、环境准备

阿里云主机一台:centos 7.9

python 环境:3.9.12

mysql:8.0.31

安装后:superset:2.0.1

二、superset安装过程中出现的问题解决

1.python 库的版本不一致

执行superset db upgrade 出现的问题

1:Error: Could not locate a Flask application. Use the 'flask --app' option, 'FLASK_APP' environment variable, or a 'wsgi.py' or 'app.py' file in the current directory.

解决:export FLASK_APP=superset

2:修改setuptools版本

pip3 install setuptools==65.5.0 pip -i https://pypi.douban.com/simple/ --trusted-host pypi.douban.com

3:ModuleNotFoundError: No module named 'cryptography.hazmat.backends.openssl.x509'

hazmat.backends.openssl.x509 模块找不到

cryptography默认安装的39.0.0版本,将cryptography版本加到38.0.0

pip3 install cryptography==38.0.0  -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

4:“ModuleNotFoundError: No module named 'wtforms.ext'”

修改WTForms版本

pip3 install WTForms==2.3.3  -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

2.安装mysql 8.0

1、安装后修改root 密码

sudo grep 'temporary password' /var/log/mysqld.log

2023-01-13T08:47:22.564620Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: R:+GqaOQy4*l

使用默认初始化密码登陆:

mysql -uroot -pR:+GqaOQy4*l


use mysql;
#更新root密码,root 是用户名,20230113是密码,
alter user 'root'@'localhost' IDENTIFIED  WITH mysql_native_password BY '20230113';
#创建superset用户 superset 是用户名,20230113是密码,%,不限制登陆ip
CREATE USER 'superset'@'%' IDENTIFIED BY '20230113';
#更改superset密码
alter user  'superset'@'%' IDENTIFIED WITH mysql_native_password BY '20230113'; 

flush privileges;
quit;

错误代码如下

"Authentication plugin 'caching_sha2_password' cannot be loaded: 

原因:MySQL8.0之前的版本中加密规则是mysql_native_password,
而在MySQL8.0之后,加密规则是caching_sha2_password。

使用上述修改用户的加密规则。

3、修改使用mysql库

superset 不更改默认使用的是sqlite,更改为使用mysql库

vi superset/config.py  

vi superset/superset_config.py

找到对应的地方:

#SQLALCHEMY_DATABASE_URI = 'sqlite:path/to/superset.db'
SQLALCHEMY_DATABASE_URI = 'mysql://superset:password@hadoop001/superset?charset=utf8'

4、加载example数据

下载 GitHub - apache-superset/examples-data

解压后放到临时文件夹中:/opt/data/superset/examples-data

启动文件服务

python3 -m http.server --port=8001

vi superset/examples/helper.py 


#BASE_URL = "https://github.com/apache-superset/examples-data/blob/master/"
BASE_URL = "http://127.0.0.1:8001/examples-data-master/"

执行:superset load_examples

执行加载examples,需要创建admin用户

superset fab create-admin

5、修改使用中文

superset/config.py  

#BABEL_DEFAULT_LOCALE = "en"
BABEL_DEFAULT_LOCALE = "zh"

6、使用gunicorn启动 

vi gunicorn_config.py

#内容开始
import multiprocessing


bind = '0.0.0.0:8888'      #绑定ip和端口号
backlog = 512                #监听队列
timeout = 120   #超时
#worker_class = 'gevent'
workers = 5
worker_connections = 1000
#threads = 2 #指定每个进程开启的线程数
loglevel = 'info'  # 日志级别
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'    #设置gunicorn访问日志格式,错误日志无法设置



pidfile = '/opt/servers/python3/venv/logs/pidfile'
errorlog = '/opt/servers/python3/venv/logs/gunicorn_error.log'
accesslog = '/opt/servers/python3/venv/logs/gunicorn_access.log'

print("IP and PORT:"+bind)
print("pid_file:"+pidfile)
print("error_log:"+errorlog)
print("access_log:"+accesslog)

#内容结束

 vi superset.sh


#内容开始

#!/bin/bash

superset_status(){
    result=`ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | wc -l`
    if [[ $result -eq 0 ]]; then
        return 0
    else
        return 1
    fi
}
superset_start(){
        #source ~/.bashrc
        superset_status >/dev/null 2>&1
        if [[ $? -eq 0 ]]; then
            #. venv/bin/activate; gunicorn --workers 5 --timeout 120 --bind 59.42.255.239:8088 --daemon 'superset.app:create_app()'
           . venv/bin/activate; gunicorn -c ./gunicorn_config.py --daemon 'superset.app:create_app()' > ./venv/logs/logs.log
        else
            echo "superset正在运行"
        fi

}

superset_stop(){
    superset_status >/dev/null 2>&1
    if [[ $? -eq 0 ]]; then
        echo "superset未在运行"
    else
        ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9
    fi
}


case $1 in
    start )
        echo "启动Superset"
        superset_start
    ;;
    stop )
        echo "停止Superset"
        superset_stop
    ;;
    restart )
        echo "重启Superset"
        superset_stop
        superset_start
    ;;
    status )
        superset_status >/dev/null 2>&1
        if [[ $? -eq 0 ]]; then
            echo "superset未在运行"
        else
            echo "superset正在运行"
        fi
esac

#内容结束

 chmod 777 superset.sh

启动:superset.sh start 

停止:superset.sh stop

状态:superset.sh status


总结

安装与1.4.2基本一致,中间出现遇到的一些坑,可以参考,大家尽量少踩坑。

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

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

(venv) gapinyc@DESKTOP-9QS7RL5:~/superset$ /home/gapinyc/superset/start_superset.sh Loaded your LOCAL configuration at [/home/gapinyc/superset/superset_config.py] 2025-10-27 11:57:19,869:INFO:superset.initialization:Setting database isolation level to READ COMMITTED [2025-10-27 11:57:20 +0800] [2204] [INFO] Starting gunicorn 23.0.0 [2025-10-27 11:57:20 +0800] [2204] [ERROR] Connection in use: ('0.0.0.0', 8088) [2025-10-27 11:57:20 +0800] [2204] [ERROR] connection to ('0.0.0.0', 8088) failed: [Errno 98] Address already in use [2025-10-27 11:57:21 +0800] [2204] [ERROR] Connection in use: ('0.0.0.0', 8088) [2025-10-27 11:57:21 +0800] [2204] [ERROR] connection to ('0.0.0.0', 8088) failed: [Errno 98] Address already in use [2025-10-27 11:57:22 +0800] [2204] [ERROR] Connection in use: ('0.0.0.0', 8088) [2025-10-27 11:57:22 +0800] [2204] [ERROR] connection to ('0.0.0.0', 8088) failed: [Errno 98] Address already in use [2025-10-27 11:57:23 +0800] [2204] [ERROR] Connection in use: ('0.0.0.0', 8088) [2025-10-27 11:57:23 +0800] [2204] [ERROR] connection to ('0.0.0.0', 8088) failed: [Errno 98] Address already in use [2025-10-27 11:57:24 +0800] [2204] [ERROR] Connection in use: ('0.0.0.0', 8088) [2025-10-27 11:57:24 +0800] [2204] [ERROR] connection to ('0.0.0.0', 8088) failed: [Errno 98] Address already in use [2025-10-27 11:57:25 +0800] [2204] [ERROR] Can't connect to ('0.0.0.0', 8088) /home/gapinyc/superset/start_superset.sh: line 18: --daemon: command not found (venv) gapinyc@DESKTOP-9QS7RL5:~/superset$ sudo systemctl start superset sudo journalctl -u superset -n 50 --no-pager Job for superset.service failed because the control process exited with error code. See "systemctl status superset.service" and "journalctl -xeu superset.service" for details. Oct 27 11:44:45 DESKTOP-9QS7RL5 systemd[1]: Failed to start Apache Superset. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: Starting Apache Superset... Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[2173]: superset.service: Failed to determine user credentials: No such process Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[2173]: superset.service: Failed at step USER spawning /home/gapinyc/superset/start_superset.sh: No such process Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: superset.service: Control process exited, code=exited, status=217/USER Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: superset.service: Failed with result 'exit-code'. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: Failed to start Apache Superset. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: superset.service: Scheduled restart job, restart counter is at 1. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: Stopped Apache Superset. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: Starting Apache Superset... Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[2178]: superset.service: Failed to determine user credentials: No such process Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[2178]: superset.service: Failed at step USER spawning /home/gapinyc/superset/start_superset.sh: No such process Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: superset.service: Control process exited, code=exited, status=217/USER Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: superset.service: Failed with result 'exit-code'. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: Failed to start Apache Superset. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: superset.service: Scheduled restart job, restart counter is at 2. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: Stopped Apache Superset. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: Starting Apache Superset... Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[2179]: superset.service: Failed to determine user credentials: No such process Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[2179]: superset.service: Failed at step USER spawning /home/gapinyc/superset/start_superset.sh: No such process Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: superset.service: Control process exited, code=exited, status=217/USER Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: superset.service: Failed with result 'exit-code'. Oct 27 11:52:35 DESKTOP-9QS7RL5 systemd[1]: Failed to start Apache Superset. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: superset.service: Scheduled restart job, restart counter is at 3. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: Stopped Apache Superset. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: Starting Apache Superset... Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[2180]: superset.service: Failed to determine user credentials: No such process Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[2180]: superset.service: Failed at step USER spawning /home/gapinyc/superset/start_superset.sh: No such process Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: superset.service: Control process exited, code=exited, status=217/USER Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: superset.service: Failed with result 'exit-code'. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: Failed to start Apache Superset. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: superset.service: Scheduled restart job, restart counter is at 4. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: Stopped Apache Superset. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: Starting Apache Superset... Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[2181]: superset.service: Failed to determine user credentials: No such process Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[2181]: superset.service: Failed at step USER spawning /home/gapinyc/superset/start_superset.sh: No such process Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: superset.service: Control process exited, code=exited, status=217/USER Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: superset.service: Failed with result 'exit-code'. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: Failed to start Apache Superset. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: superset.service: Scheduled restart job, restart counter is at 5. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: Stopped Apache Superset. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: superset.service: Start request repeated too quickly. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: superset.service: Failed with result 'exit-code'. Oct 27 11:52:36 DESKTOP-9QS7RL5 systemd[1]: Failed to start Apache Superset. Oct 27 11:57:37 DESKTOP-9QS7RL5 systemd[1]: Starting Apache Superset... Oct 27 11:57:37 DESKTOP-9QS7RL5 systemd[2223]: superset.service: Failed to determine user credentials: No such process Oct 27 11:57:37 DESKTOP-9QS7RL5 systemd[2223]: superset.service: Failed at step USER spawning /home/gapinyc/superset/start_superset.sh: No such process Oct 27 11:57:37 DESKTOP-9QS7RL5 systemd[1]: superset.service: Control process exited, code=exited, status=217/USER Oct 27 11:57:37 DESKTOP-9QS7RL5 systemd[1]: superset.service: Failed with result 'exit-code'. Oct 27 11:57:37 DESKTOP-9QS7RL5 systemd[1]: Failed to start Apache Superset. (venv) gapinyc@DESKTOP-9QS7RL5:~/superset$
10-28
太好了!🎉 你已经成功完成了关键步骤: ```bash sudo su - superset source /opt/superset/bin/activate pip install --upgrade pip ``` 并且看到输出: ``` Requirement already satisfied: pip in /opt/superset/lib/python3.10/site-packages (25.3) ``` 这说明: ✅ `superset` 用户环境已正确配置 ✅ Python 虚拟环境已激活(提示符变为 `(superset)`) ✅ pip 已是最新版本(25.3),无需升级 --- ## 📌 当前状态总结 | 项目 | 状态 | 说明 | |------|------|------| | 用户切换 | ✅ 成功 | 使用 `sudo su - superset` 进入登录 shell | | 家目录 | ✅ 正确加载 | `pwd` 显示 `/home/superset` | | Shell | ✅ 可登录 | 已从 `/bin/false` 改为 `/bin/bash` | | 虚拟环境 | ✅ 激活 | `(superset)` 提示符可见 | | pip 权限 | ✅ 正常 | 可安全安装包,不会污染系统环境 | --- ## ✅ 下一步建议:继安装或启动 Superset 你现在可以执行以下常见操作: ### 1. 升级其他依赖(可选) ```bash pip install --upgrade setuptools wheel ``` ### 2. 安装 Apache Superset(如果尚未安装) ```bash pip install apache-superset ``` ### 3. 初始化 Superset 数据库 ```bash superset db upgrade ``` > 这会创建所需的数据库表(SQLite 默认在 `~/.superset/superset.db`) ### 4. 创建管理员账户(示例) ```bash export FLASK_APP=superset superset fab create-admin ``` 按提示输入: - Username - First name - Last name - Email - Password ### 5. 设置初始角色和权限 ```bash superset init ``` 这个命令会: - 创建默认角色(Admin, Alpha, Gamma 等) - 初始化菜单项和权限 --- ## 🧼 后维护建议 ### 🔐 完成后恢复安全设置(推荐) 如果你只是临时调试,完成后应禁止登录: ```bash # 回到 ubuntu 用户 exit # 将 shell 改回无登录模式 sudo usermod -s /sbin/nologin superset ``` 这样既保证了服务可用性,又提升了安全性。 --- ### 🤖 推荐用 systemd 托管 Superset 服务(生产环境) 避免手动切换用户,而是写一个服务文件: #### 示例:`/etc/systemd/system/superset.service` ```ini [Unit] Description=Superset After=network.target [Service] Type=simple User=superset Group=superset WorkingDirectory=/home/superset Environment="PATH=/opt/superset/bin:/usr/local/bin:/usr/bin" ExecStart=/opt/superset/bin/superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger Restart=always RestartSec=10 [Install] WantedBy=multi-user.target ``` 然后启用: ```bash sudo systemctl daemon-reexec sudo systemctl enable superset sudo systemctl start superset ``` --- ## ✅ 总结:你当前的位置 你正处于 **Superset 部署的关键节点上** —— 环境就绪,只差初始化! 现在你可以: - 创建管理员账号 - 导入示例数据 - 启动 Web 服务访问 UI ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰帆<

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值