1、Superset安装步骤
superset官网 superset.apache.org/
superset对于python有版本要求,最好是最新版的python,因此需要安装python虚拟环境,方面部署。
superset有window安装方法,Linux的虚拟python环境安装方法,以及Linux的docker安装方法,一下为Linux虚拟python环境安装docker的方法
1.1 superset安装步骤
安装superset的完全步骤如下:
安装miniconda->在miniconda中为superset创建python虚拟环境->安装superset
安装过程需要全程联网
2、安装Miniconda
为什么不用anaconda或者是conda?
因为anaconda环境内容较多,安装superset不需要较多工具
下载Miniconda(Python3版本)的地址为:repo.anaconda.com/miniconda/M...
按照以下命令进行安装,根据提示进行操作完成安装
拉取安装脚本
bash Miniconda3-latest-Linux-x86_64.sh
在一开始阅读协议的时候可以按空格键快速阅读
笔者在使用命令安装时的安装miniconda地址为
arduino
/opt/module/miniconda3
加载配置
加载环境变量配置文件,使之生效
bash
source ~/.bashrc
Miniconda安装完成后,每次打开终端都会激活其默认的base环境,我们可通过以下命令,禁止激活默认base环境。
arduino
conda config --set auto_activate_base false
3、创建python 3.10.4环境
配置conda镜像
arduino
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --set show_channel_urls yes
创建python环境
ini
conda create --name superset python=3.10.4
conda环境管理常用命令
lua
创建环境:conda create -n env_name
查看所有环境:conda info --envs
删除一个环境:conda remove -n env_name --all
激活环境
conda activate superset
如果想退出当前环境,使用如下命令
conda deactivate
4、安装superset
安装依赖
r
sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel
安装(更新)setuptools和pip
css
pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/
安装superset
arduino
pip install apache-superset -i https://pypi.douban.com/simple/
说明:-i的作用是指定镜像,这里选择国内镜像 注:如果遇到网络错误导致不能下载,可尝试更换镜像
ruby
pip install apache-superset --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple
初始化Supetset数据库
superset db upgrade
创建管理员账户
ini
export FLASK_APP=superset
superset fab create-admin
superset init
修改密码
css
superset fab reset-password --username admin --password 123456
username后面需要改成你想修改的用户的用户名,不需要修改
password后面为后续想改成的密码
修改完成后需要执行
csharp
superset init
重启
5、启动superset
安装gunicorn
arduino
pip install gunicorn -i https://pypi.douban.com/simple/
说明:gunicorn是一个Python Web Server,可以和java中的TomCat类比
启动Superset 首先确保当前conda环境为superset,及下图所示

启动
css
gunicorn --workers 5 --timeout 120 --bind 172.16.150.14:5000 "superset.app:create_app()" --daemon
说明: --workers:指定进程个数,python脚本语言没有线程概念 --timeout:worker进程超时时间,超时会自动重启 --bind:绑定本机地址,即为Superset访问地址 --daemon:后台运行
需要保证后续可以登录,需要保证防火墙关闭(不推荐)或者是开启端口并且重启防火墙
ini
# 重启防火墙
firewall-cmd --reload
# 开启防火墙
systemctl start firewalld
# 关闭防火墙
systemctl stop firewalld
# 防火墙版本
firewall-cmd --version
# 防火墙状态
systemctl status firewalld
firewall-cmd --query-port=80/tcp
firewall-cmd --permanent --list-ports
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=8083-8085/tcp
firewall-cmd --permanent --remove-port=8083-8085/tcp
6、遇到的问题以及解决
报错1
ruby
(superset) [hyj@hadoop102 ~]$ superset db upgrade
#然后包这些错误
from markupsafe import soft_unicode
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/markupsafe/__init__.py)
解决方法
ini
#查看markupsafe这个包是否存在
(superset) [hyj@hadoop102 ~]$ pip show markupsafe
Name: MarkupSafe
Version: 2.1.2
#下载2.0.1版本的markupsafe (pip会帮我们卸载之前版本的并下载2.0.1版本的markupsafe)
(superset) [hyj@hadoop102 ~]$ pip install markupsafe==2.0.1
报错2
python
(superset) [hyj@hadoop102 ~]$ superset db upgrade
#但是会报这个错误
re.compile(r"'(''|\\|\|[^'])*'", sqlparse.keywords.FLAGS).match,
AttributeError: module 'sqlparse.keywords' has no attribute 'FLAGS'
解决方法
ini
pip install sqlparse=='0.4.3'
报错3
javascript
superset db upgrade
#报错
Error: Could not locate a Flask application.
You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.
解决方法
ini
export FLASK_APP=superset
报错4
markdown
superset db upgrade
#但是遇到如下问题
--------------------------------------------------------------------------------
WARNING
--------------------------------------------------------------------------------
A Default SECRET_KEY was detected, please use superset_config.py to override it.
Use a strong complex alphanumeric string and use a tool to help you generate
a sufficiently random sequence, ex: openssl rand -base64 42
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Refusing to start due to insecure SECRET_KEY
解决方法
进入到miniconda3的安装路径下的envs/superset/lib/python+版本号/目录
bash
(superset) [hyj@hadoop102 ~]$ cd /opt/module/miniconda3/envs/superset/lib/python3.8/
创建superset_config.py
vim superset_config.py
添加如下行为
bash
SECRET_KEY = "ZT2uRVAMPKpVkHM/QA1QiQlMuUgAi7LLo160AHA99aihEjp03m1HR6Kg"
用命令 openssl rand -base64 42 来生成一个强密钥
openssl rand -base64 42
4xPjBius42o5Y/pbgRmkjKZ3im5CeHcRXM93TWm+FboEJOll0XMMgDRW
所以SECRET_KEY ="4xPjBius42o5Y/pbgRmkjKZ3im5CeHcRXM93TWm+FboEJOll0XMMgDRW"
报错5
yum命令无法查找到镜像mirror,下载不了文件的问题
解决
要么配置本地源(不推荐),要么网络拉取镜像源(推荐),下面有网络拉取镜像源的步骤
bash
#安装wget工具
yum intall -y wget
#转到yum源文件存放路径
cd /etc/yum.repos.d/
#创建一个网络yum源文件备份
tar zcf backup_repo.tar.gz *
#删除所有yum源文件
rm -rf CentOS*
#下载yum源文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
#清除缓存
yum clean all
#重新搭载yum源
yum makecache
登录
访问http://hadoop102:5000,并使用之前安装superset过程中设置的用户名密码登录
停止superset
如果想要停止superset则使用如下命令
bash
ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9
使用superset启停脚本进行项目的启停
其中IP地址和端口需要根据实际情况进行更改
vim superset.sh
内容如下
bash
#!/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地址:端口 --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
加执行权限
bash
chmod +x superset.sh
怎么使用这些指令
bash
# 启动superset
superset.sh start
# 停止superset
superset.sh stop
# 重启superset
superset.sh restart
自助分析平台使用教程
自助分析平台自身使用软件自带的sqlite软件对于信息进行存储 应用效果如图所示

其中主要部分用于展示自制的页面列表,自助分析平台有如下几个重要的组成元素:
- 仪表盘(dashboard)
- 各种数据图形(chart)
- 数据集(dataset)
- 数据源(database)
而创建一个完整的图表过程下所示
1、配置展示的数据源
点击右上角setting,在下拉框列表中勾选database connection

再点击
可以添加数据源,填写好配置后既可使用该数据源拿取数据
2、创建页面
在主页中点击 添加database,即可添加新页面

创建页面的页面效果如图所示

其中charts为可以用于填充页面的图表,需要自己制作,layout elements是布局元素,可以添加一定的预设填充页面,比如一部分markdown编辑组件,规定自制图表大小和位置的页面结构
如果没有图表,需要自己创作
3、创建图表
点击任何和图标相关的信息即可跳转到创建图表页面

分为两步,第一步选择数据集,第二步为选择图表样式
3.1创建数据集
点击add a dataset后可以跳转到安装数据源的页面,这个功能的意思就是从设置的数据源中拿到一张表,作为一个数据源

点击dataset,会让你从已经设置的数据源中选择一个作为数据源,
schema则为让你在选择的数据源中选择一个schema,
选择完成后会产生新的下拉框选项

即为选择相应的表
选择后点击右下角的 create dataset and create chart,即为创建完成
3.2选择图表

4、编辑图表
编辑图表界面如图所示

主要的部分为1、2、3、4共4各部分,其中
1为图表名称
2为数据集的信息展示,对于此部分了解的人员可以隐藏不看该部分
3为确认横坐标和纵坐标的信息
time与横坐标信息强绑定了,如果使用时间顺序折线图的话,必须从表中选择时间类型的属性作为横坐标,其中
time column为选择哪一个数据集中的属性作为x轴
time grain为单位,是哪一个时间维度作为单位
time range为查询的时间跨度是多少,可以不过滤
Query为y轴部分
METRIC可以用于选择哪一个数据集中的属性作为y轴信息,以及这个字段中数据以什么样的聚合函数形式展示,比如平均,还是求和,还是极值
FILTERS可以用于作为过滤条件,即对于数据进行条件判断,适合条件的才会做处理
第4部分为数据的可视化展示
处理完成后即可进行保存
值得注意的是,目前自主分析平台可以制作多种图表,已经可以满足各种类型图表的制作
5、填充页面并保存
再次回到页面编辑界面,此时我们已经有了数个图表

右侧为已经创建的图表,使用鼠标拖拽即可将图标移动到网页上
5.1改变图表大小
鼠标移动到图表的右侧或者下侧时,鼠标会变成特殊符号,此时按住鼠标进行拖拽即可改变图表大小
5.2各种布局元素的使用
除了自制图表,自助分析平台会提供6种预设布局元素,以供使用

从上到下的功能依次为
tabs: 将其放置于页面上时会创建一行信息,这行中可以创建多个sheet页,每一页可以填充不同的图表,每一个sheet页均可命名
row:可以创建一行空行,通常与column元素一起使用,达到一行中有多层的效果

Header:在页面上为单独一行,可以作为标题行使用
text:一块页面组件,大小初始默认和自制的图表大致相同,但是里面可以填充markdown语法,并且可以分别展示代码形式和预览形式

divider:在页面中以一条直线展示,可以作为分隔符使用
编辑完成后点击右上角的save按键,即可保存页面效果
有一点需要注意的,成型的页面只会默认创建页面的时候拉取一次数据并展示,后期不会主动拉取数据进行分析展示,如果想要展示,则需要右上角的...,除了可以点击refresh dashboard进行一次手动刷新数据外,可以点击set auto-fresh interval按键选择自动刷新的时间间隔,选择哪一个可以根据业务需求
