Superset 部署
Superset 部署
Superset概述
Apache Superset是一个开源的、现代的、轻量级的BI分析工具,能够对接多种数据源、拥有丰富的图表展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用。
安装python环境
1.安装Miniconda
conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同Python版本的软件包及其依赖,并能够在不同的Python环境之间切换。
conda 环境管理常用命令
创建环境: conda create -n env_name
查看所有环境: conda info --envs
删除一个环境: conda remove -n env_name --all
1.1下载Miniconda (Python3版本)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
1.2安装
bash Miniconda3-latest-Linux-x86_64.sh
一直按回车键,直到出现 Please answer 'yes' or 'no':'
输入 yes
指定安装路径
是否初始化 Miniconda3,输入yes
等待安装完成
1.3配置系统环境变量
vim /etc/profile
export CONDA_HOME=/opt/module/miniconda3
export PATH=$PATH:$CONDA_HOME/bin
生效变量
source /etc/profile
source ~/.bashrc
1.4取消激活base环境
如果你不希望在启动时自动激活 conda 的基础环境,可以设置 auto_activate_base 参数为 false
conda config --set auto_activate_base false
1.5查看conda 版本
conda --version
1.6创建Python3.7环境
配置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/
Conda Forge 是社区驱动的通道,包含了许多额外的 Python 包和工具。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
如果你需要在 Windows 上使用一些类似于 Unix 命令的工具,可以添加 MSYS2 通道。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
查看镜像
conda config --set show_channel_urls yes
创建python3.9环境(尝试过python3.7、3.8版本安装最新版本superset 均有问题,故选择3.9版本)
conda create --name superset python=3.9
输入y,继续
成功后如下图所示
激活环境
conda activate superset
激活成功后如下图所示
2.Superset部署
2.1安装Superset之前,需安装以下所需依赖
yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel
2.2更新 setuptools和pip
pip install --upgrade setuptools pip
2.3安装Supetset
pip install apache-superset
2.4初始化Supetset数据库
superset db upgrade
可能会出现问题
因为没有配置管理员用户
export FLASK_APP=superset
再次执行
superset db upgrade
发现还是报错
此时在有openssl的服务器上执行 (这个命令是在使用OpenSSL生成一个随机的Base64编码字符串)
openssl rand -base64 42
导入生成的key
export SUPERSET_SECRET_KEY="xxxxxxxx"
再次执行
superset db upgrade
出现下图为成功
创建管理员账户
superset fab create-admin
2.5Superset初始化
superset init
3.启动Superset
3.1安装gunicorn(gunicorn 是一个 Python Web Server,可以和 java 中的 TomCat 类似)
pip install gunicorn
3.2 启动Superset
确保当前conda环境为superset
gunicorn --workers 5 --timeout 120 --bind IP:PORT "superset.app:create_app()" --daemon
说明:
- workers:指定进程个数
- timeout:worker 进程超时时间,超时会自动重启
- bind:绑定本机地址,即为 Superset 访问地址,若使用主机名,需要在本地主机中建立虚拟机主机名和虚拟机ip的映射关系
- daemon:后台运行
3.3登录 Superset
访问 http://IP:PORT,并使用前面创建的管理员账号进行登录。
3.4停止 Superset
ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9
3.5编写
#!/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
conda activate superset ; gunicorn --workers 5 --timeout 120 --bind IP:PORT --daemon 'superset.app:create_app()'
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 +x superset.sh
测试脚本
启动 Superset
sh superset.sh start
查看 Superset状态
sh superset.sh status
停止 Superset
sh superset.sh stop
重启 Superset
sh superset.sh restart
