Superset安装步骤

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按键选择自动刷新的时间间隔,选择哪一个可以根据业务需求

相关推荐
三道杠卷胡7 分钟前
【AI News | 20250804】每日AI进展
人工智能·python·语言模型·github·aigc
夕颜11114 分钟前
Claude AI 编程初体验
后端
程序员爱钓鱼18 分钟前
Go语言实战案例:使用WaitGroup等待多个协程完成
后端·go·trae
微凉的衣柜25 分钟前
GitHub Models:为开源AI项目解决推理难题,让AI更易用、更普及
人工智能·开源·github
程序员海军26 分钟前
告别低质量Prompt!:字节跳动PromptPilot深度测评
前端·后端·aigc
程序员爱钓鱼26 分钟前
Go语言实战案例:任务调度器:定时执行任务
后端·go·trae
华洛27 分钟前
关于可以控制大模型提升任意产品的排名这件事📈
前端·github·产品经理
沙蒿同学32 分钟前
Golang单例模式实现代码示例与设计模式解析
后端·go
Apifox34 分钟前
如何在 Apifox 中给字段设置枚举(比如字符串、数组等)?
后端·ai编程·测试
用户4976360000601 小时前
内部类不能bean注入
后端