关于这个superset的部署,因为公司有需要,经过了几天的折磨,总算是把这个superset部署成功了,下面我给大家分享一下整个部署的过程
tips:在部署的过程中,我也有查阅了很多的资料和文档,发现其中有一些报错是可以避免的,所以在下面中可能没有提到常见的报错,这个是我经过多次部署之后表现较为稳定的流程。
博主的服务器:Ubuntu 20.04
superset安装
1 安装python环境
1.1 安装Miniconda
介绍
conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同Python版本的软件包及其依赖,并能够在不同的Python环境之间切换,Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等,Miniconda包括Conda、Python。
1)下载Miniconda(Python3版本)
下载地址:Miniconda3下载
2)将下载好的Miniconda上传到目标机器中
进入到该文件的路径,执行以下命令安装
bash Miniconda3-latest-Linux-x86_64.sh
一直按着回车键(空格键翻页更快),直到出现“Please answer ‘yes’ or ‘no’ :” 回复yes
可以指定miniconda的安装路径,这里我指定的路径是:/home/superset/miniconda3,按下回车继续安装
这里询问的是是否要初始化conda,输入yes即可
出现thank you的字样说明miniconda已经安装成功了
“conda config --set auto_activate_base false”这个指令的意思是,由于已经完成了初始化,base环境是默认运行的,这个指令就是可以取消默认base环境自启动
下图展示base环境的情况
安装成功的界面
3)加载环境变量使之生效(如果不想执行这个指令,可以关闭重新开一个ssh窗口)
source ~/.bashrc
4)关于conda的一些基础的指令
## 查看conda的版本
conda --version
## 查看镜像
conda config --show channels
## 创建环境
conda create -n env_name
## 查看所有环境
conda info --envs
## 删除一个环境
conda remove -n env_name --all
1.2 创建python环境
1)配置conda国内镜像
#包含了一些基本的 Python 包、库和工具。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
#这是 Anaconda 主要的通道,包含了大量的 Python 包和工具。如果你主要使用 Python 包,这是一个必要的通道。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
2)创建python环境
因为python 3.9以下的环境在安装superset的时候会有众多的报错,所以这里选用了3.9的环境
conda create --name superset python=3.9
安装成功界面
## 激活环境
conda activate superset
## 取消环境
conda deactivate
激活成功的界面,会多出一个superset的字样
2 superset部署
安装superset需要的依赖
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev
如果发生下图的报错,就update一下
sudo apt update
- 更新pip与setuptools工具(推荐使用华为源进行安装)
pip install --upgrade setuptools pip -i https://repo.huaweicloud.com/repository/pypi/simple
- 先激活上边创建的superset环境,然后再安装superset:
# 激活环境
conda activate superset
# 安装 Superset
pip install apache-superset -i https://repo.huaweicloud.com/repository/pypi/simple
安装成功界面
- 初始化superset数据库
superset db upgrade
报错一如下图,这是没有定义flask_app导致的
执行以下指令,继续进行初始化
export FLASK_APP=superset
报错二如下图,这是superset要求的密钥设置
执行以下指令
1)进入到superset的安装路径,这里以自己的superset路径为准
cd /home/superset/miniconda3/envs/superset
2)使用openssl生成一个密钥
openssl rand -base64 42
## 得到密钥:MIRYuaNW6EFuejM/aZSKFb5LQar3wtHGWU2EQxVss5/m8R/FlM0LzYz+
(这里是个示例,需要用到自己生成的密钥)
3)在安装路径下创建一个superset_config.py文件
touch superset_config.py
4)在superset_config.py进行设置
sudo vim superset_config.py
# Superset 配置
# 行数限制 5000 行
ROW_LIMIT = 5000
# 网站服务器端口 8088
SUPERSET_WEBSERVER_PORT = 8088
# Superset 密钥
SECRET_KEY = "MIRYuaNW6EFuejM/aZSKFb5LQar3wtHGWU2EQxVss5/m8R/FlM0LzYz+"
# 跨域请求攻击标识(这个改为True的话必须要有CSRF token,否则报错)
WTF_CSRF_ENABLED = False
# CSRF 白名单
WTF_CSRF_EXEMPT_LIST = []
# CSFR 令牌过期时间 1 年
WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365
# 接口密钥用来启用 Mapbox 可视化
MAPBOX_API_KEY = ''"
5)编辑、刷新环境变量
## 编辑
sudo vim /etc/profile
## 在文件中编辑
# SUPERSET_CONFIG
export SUPERSET_CONFIG_PATH=/home/superset/miniconda3/envs/superset/superset_config.py
## 最后刷新文件
source /etc/profile
6)重新激活环境并执行一次初始化命令
初始化成功的页面,看到一堆info的就是成功了
激活环境过程中,出现这个错误直接执行以下指令即可
pip install pillow -i https://repo.huaweicloud.com/repository/pypi/simple
7)在初始化完成之后,我们就可以创建用户,用于登录用,除了用户名和密码需要写,其他都不用可以空着
superset fab create-admin
8)初始化superset
superset init
9)完成初始化后,启动指令,访问对应端口号即可,先以debug的形式启动看看是否成功运行
superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger
这里0.0.0.0就是以主机为主,端口号可以自己指定
输入刚才设置的账号密码即可进入
如果没有问题,就可以采用后台运行的方式来启动
这里的workers表示进程数,设置几就有几个进程,可以根据自己的配置适当的设置
## 安装这个类似tomcat的运行环境
pip install gunicorn -i https://repo.huaweicloud.com/repository/pypi/simple
## 后台启动指令
gunicorn --workers 1 --timeout 120 --bind 0.0.0.0:8088 "superset.app:create_app()" --daemon
10)配置数据源
关于数据源的配置,本篇不做探究,详情参考superset数据源配置官方文档