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

图片.png

指定安装路径

图片.png

是否初始化 Miniconda3,输入yes

图片.png

等待安装完成

图片.png

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

图片.png

输入y,继续

成功后如下图所示

图片.png

激活环境

conda activate superset

激活成功后如下图所示

图片.png

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

可能会出现问题

图片.png

因为没有配置管理员用户

export FLASK_APP=superset

再次执行

superset db upgrade

发现还是报错

图片.png

此时在有openssl的服务器上执行 (这个命令是在使用OpenSSL生成一个随机的Base64编码字符串)

openssl rand -base64 42

导入生成的key

export SUPERSET_SECRET_KEY="xxxxxxxx"

再次执行

superset db upgrade

出现下图为成功

图片.png

创建管理员账户

superset fab create-admin

图片.png

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

    评论
    0 评论
avatar

取消